{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import locale\n",
    "from collections import defaultdict\n",
    "import pycountry\n",
    "from sklearn.preprocessing import LabelEncoder,normalize\n",
    "import re\n",
    "import datetime\n",
    "import scipy.io as sio\n",
    "import scipy.spatial.distance as ssd"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 用户数据的处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 38209 entries, 0 to 38208\n",
      "Data columns (total 7 columns):\n",
      "user_id      38209 non-null int64\n",
      "locale       38209 non-null object\n",
      "birthyear    38209 non-null object\n",
      "gender       38100 non-null object\n",
      "joinedAt     38152 non-null object\n",
      "location     32745 non-null object\n",
      "timezone     37773 non-null float64\n",
      "dtypes: float64(1), int64(1), object(5)\n",
      "memory usage: 2.0+ MB\n",
      "None\n",
      "      user_id locale birthyear  gender                  joinedAt  \\\n",
      "0  3197468391  id_ID      1993    male  2012-10-02T06:40:55.524Z   \n",
      "1  3537982273  id_ID      1992    male  2012-09-29T18:03:12.111Z   \n",
      "2   823183725  en_US      1975    male  2012-10-06T03:14:07.149Z   \n",
      "3  1872223848  en_US      1991  female  2012-11-04T08:59:43.783Z   \n",
      "4  3429017717  id_ID      1995  female  2012-09-10T16:06:53.132Z   \n",
      "5   627175141  ka_GE      1973  female  2012-11-01T09:59:17.590Z   \n",
      "6  2752000443  id_ID      1994    male  2012-10-03T05:22:17.637Z   \n",
      "7  3473687777  id_ID      1965  female  2012-10-03T12:19:29.975Z   \n",
      "8  2966052962  id_ID      1979    male  2012-10-31T10:11:57.668Z   \n",
      "9   264876277  id_ID      1988  female  2012-10-02T07:28:09.555Z   \n",
      "\n",
      "             location  timezone  \n",
      "0    Medan  Indonesia     480.0  \n",
      "1    Medan  Indonesia     420.0  \n",
      "2  Stratford  Ontario    -240.0  \n",
      "3        Tehran  Iran     210.0  \n",
      "4                 NaN     420.0  \n",
      "5    Tbilisi  Georgia     240.0  \n",
      "6    Medan  Indonesia     420.0  \n",
      "7    Medan  Indonesia     420.0  \n",
      "8    Medan  Indonesia     420.0  \n",
      "9    Medan  Indonesia     420.0  \n"
     ]
    }
   ],
   "source": [
    "user_data = pd.read_csv('users.csv')\n",
    "print(user_data.info())\n",
    "print(user_data.head(10))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "def getJoinedDate(dateString):\n",
    "    \"\"\"\n",
    "     对日期格式的处理，变成简单的年加月的形式\n",
    "    \"\"\"\n",
    "    #dateString = '2012-07-11T03:04:29.622Z'\n",
    "    dt = datetime.datetime.strptime(dateString, \"%Y-%m-%dT%H:%M:%S.%fZ\")\n",
    "    return \"\".join([str(dt.year), str(dt.month)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "lbl = LabelEncoder()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    " 对缺失的数据进行处理，对日期格式的数据进行格式化（年+月的形式）\n",
    "\"\"\"\n",
    "locale_label = lbl.fit_transform(user_data['locale'])\n",
    "# pattern = r'<'\n",
    "# print(user_data[user_data['location'].str.contains(pattern,na=False)])\n",
    "user_data['timezone'].fillna('0',inplace=True)\n",
    "user_data['location'].fillna('none',inplace=True)\n",
    "user_data['gender'].fillna('male',inplace=True)\n",
    "user_data['joinedAt'].fillna('2012-07-11T03:04:29.622Z',inplace=True)\n",
    "user_data['joinedAt'].replace('None','2012-07-11T03:04:29.622Z',inplace=True)\n",
    "user_data['birthyear'].replace('None',0,inplace=True)\n",
    "#print(user_data['joinedAt'].isnull().value_counts())\n",
    "user_data['joinedAt_format'] = user_data.apply(lambda row: getJoinedDate(str(row['joinedAt'])),axis = 1)\n",
    "\n",
    "location_label = lbl.fit_transform(user_data['location'])\n",
    "user_data['gender'] = user_data['gender'].map({'male':0,'female':1})\n",
    "user_data['local_id'] = locale_label\n",
    "user_data['location_id'] = location_label"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "import pickle\n",
    "import scipy.sparse as ss\n",
    "\"\"\"\n",
    " 减少计算量，只计算在train和test数据集中出现的用户和活动\n",
    "\"\"\"\n",
    "userindex = pickle.load(open('userIndex.pkl','rb'))\n",
    "nusers = len(userindex.keys())\n",
    "user_data.drop(['locale','joinedAt','location'],axis =1, inplace=True)\n",
    "columns = user_data.columns"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Index(['user_id', 'birthyear', 'gender', 'timezone', 'joinedAt_format',\n",
      "       'local_id', 'location_id'],\n",
      "      dtype='object')\n"
     ]
    }
   ],
   "source": [
    "\"\"\"\n",
    " 定义一个以字典形式保存数据的矩阵。\n",
    "\"\"\"\n",
    "userMatrix = ss.dok_matrix((nusers, len(columns) - 1))\n",
    "print(columns)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    " 删选用户，只挑选出在train和test数据集中出现的用户\n",
    "\"\"\"\n",
    "train_user_data = pd.DataFrame()\n",
    "for key in userindex:\n",
    "    train_user_data = train_user_data.append(user_data[user_data['user_id'] == int(key)])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  (0, 0)\t1987.0\n",
      "  (0, 2)\t180.0\n",
      "  (0, 3)\t201210.0\n",
      "  (0, 4)\t1.0\n",
      "  (1, 0)\t1996.0\n",
      "  (1, 1)\t1.0\n",
      "  (1, 2)\t420.0\n",
      "  (1, 3)\t201210.0\n",
      "  (1, 4)\t31.0\n",
      "  (1, 5)\t1535.0\n",
      "  (2, 0)\t1967.0\n",
      "  (2, 2)\t60.0\n",
      "  (2, 3)\t201210.0\n",
      "  (2, 4)\t16.0\n",
      "  (2, 5)\t1311.0\n",
      "  (3, 0)\t1993.0\n",
      "  (3, 1)\t1.0\n",
      "  (3, 2)\t-300.0\n",
      "  (3, 3)\t201210.0\n",
      "  (3, 4)\t19.0\n",
      "  (3, 5)\t398.0\n",
      "  (4, 0)\t1915.0\n",
      "  (4, 2)\t210.0\n",
      "  (4, 3)\t201211.0\n",
      "  (4, 4)\t22.0\n",
      "  :\t:\n",
      "  (3386, 4)\t16.0\n",
      "  (3386, 5)\t687.0\n",
      "  (3387, 0)\t1983.0\n",
      "  (3387, 2)\t-480.0\n",
      "  (3387, 3)\t201210.0\n",
      "  (3387, 4)\t16.0\n",
      "  (3387, 5)\t2247.0\n",
      "  (3388, 0)\t1998.0\n",
      "  (3388, 1)\t1.0\n",
      "  (3388, 2)\t240.0\n",
      "  (3388, 3)\t201210.0\n",
      "  (3388, 4)\t16.0\n",
      "  (3388, 5)\t266.0\n",
      "  (3389, 0)\t1995.0\n",
      "  (3389, 1)\t1.0\n",
      "  (3389, 2)\t-180.0\n",
      "  (3389, 3)\t201210.0\n",
      "  (3389, 4)\t18.0\n",
      "  (3389, 5)\t2257.0\n",
      "  (3390, 0)\t1994.0\n",
      "  (3390, 1)\t1.0\n",
      "  (3390, 2)\t-480.0\n",
      "  (3390, 3)\t201210.0\n",
      "  (3390, 4)\t26.0\n",
      "  (3390, 5)\t2593.0\n"
     ]
    }
   ],
   "source": [
    "\"\"\"\n",
    " 将用户的信息存入矩阵\n",
    "\"\"\"\n",
    "for idx,val in train_user_data.iterrows():\n",
    "    userMatrix[userindex[str(val['user_id'])],0] = val['birthyear']\n",
    "    userMatrix[userindex[str(val['user_id'])], 1] = val['gender']\n",
    "    userMatrix[userindex[str(val['user_id'])], 2] = val['timezone']\n",
    "    userMatrix[userindex[str(val['user_id'])], 3] = val['joinedAt_format']\n",
    "    userMatrix[userindex[str(val['user_id'])], 4] = val['local_id']\n",
    "    userMatrix[userindex[str(val['user_id'])], 5] = val['location_id']\n",
    "print(userMatrix)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    " 对矩阵进行归一化处理\n",
    "\"\"\"\n",
    "userMatrix = normalize(userMatrix, norm=\"l1\", axis=0, copy=False)\n",
    "sio.mmwrite(\"userMatrix\",userMatrix)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    " 定义一个以字典形式存放数据的矩阵，用来存放用户之间相似度\n",
    "\"\"\"\n",
    "userSimMatrix = ss.dok_matrix((nusers, nusers))"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "scipy.spatial.distance.correlation\n",
    "Computes the correlation distance between two 1-D arrays.\n",
    "The correlation distance between u and v, is defined as\n",
    "\n",
    "![image.png](attachment:image.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    " 数据userpairs表示两个用户对同一个活动感兴趣。即所谓的关联用户，指的是至少在同一个event上有行为的用户。\n",
    " 调用scipy的矩阵距离计算公式来计算关联用户之间的相似度\n",
    "\"\"\"\n",
    "userparis = pickle.load(open('FE_uniqueUserPairs.pkl','rb'))\n",
    "sim=ssd.correlation  # 相关性分析\n",
    "for u1,u2 in userparis:\n",
    "    #print(userMatrix.getrow(u1).todense(),userMatrix.getrow(u2).todense())\n",
    "    if (u1,u2) not in userSimMatrix:\n",
    "        usim = sim(userMatrix.getrow(u1).todense(),userMatrix.getrow(u2).todense())\n",
    "        userSimMatrix[u1, u2] = usim\n",
    "        userSimMatrix[u2, u1] = usim\n",
    "sio.mmwrite(\"userSimMatrix\",userSimMatrix)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  (2406, 3186)\t0.393656462178\n",
      "  (3186, 2406)\t0.393656462178\n",
      "  (1741, 1794)\t9.26802640189e-08\n",
      "  (1794, 1741)\t9.26802640189e-08\n",
      "  (2579, 2140)\t0.0961896382944\n",
      "  (2140, 2579)\t0.0961896382944\n",
      "  (1285, 624)\t0.0852024167942\n",
      "  (624, 1285)\t0.0852024167942\n",
      "  (2568, 151)\t0.0112887053409\n",
      "  (151, 2568)\t0.0112887053409\n",
      "  (2545, 2026)\t0.00226282733964\n",
      "  (2026, 2545)\t0.00226282733964\n",
      "  (1571, 2871)\t0.388088841109\n",
      "  (2871, 1571)\t0.388088841109\n",
      "  (683, 418)\t1.73088954214e-06\n",
      "  (418, 683)\t1.73088954214e-06\n",
      "  (1070, 722)\t0.409449975972\n",
      "  (722, 1070)\t0.409449975972\n",
      "  (3160, 2661)\t4.12397679672e-07\n",
      "  (2661, 3160)\t4.12397679672e-07\n",
      "  (2667, 835)\t9.26955089353e-08\n",
      "  (835, 2667)\t9.26955089353e-08\n",
      "  (649, 2082)\t0.147599579802\n",
      "  (2082, 649)\t0.147599579802\n",
      "  (1850, 2402)\t1.83797102123\n",
      "  :\t:\n",
      "  (2962, 3150)\t1.81618488196\n",
      "  (2191, 2837)\t1.63521315493\n",
      "  (2837, 2191)\t1.63521315493\n",
      "  (121, 857)\t9.32178157997e-08\n",
      "  (857, 121)\t9.32178157997e-08\n",
      "  (1869, 528)\t3.68382659821e-07\n",
      "  (528, 1869)\t3.68382659821e-07\n",
      "  (3237, 1741)\t1.48251537224e-06\n",
      "  (1741, 3237)\t1.48251537224e-06\n",
      "  (2442, 998)\t1.16726045637\n",
      "  (998, 2442)\t1.16726045637\n",
      "  (1260, 934)\t0.354153324843\n",
      "  (934, 1260)\t0.354153324843\n",
      "  (2907, 2442)\t0.745539434637\n",
      "  (2442, 2907)\t0.745539434637\n",
      "  (1659, 1476)\t8.3872025507e-06\n",
      "  (1476, 1659)\t8.3872025507e-06\n",
      "  (2144, 1162)\t1.97452855622\n",
      "  (1162, 2144)\t1.97452855622\n",
      "  (199, 1930)\t0.358189452422\n",
      "  (1930, 199)\t0.358189452422\n",
      "  (554, 3223)\t0.354358943919\n",
      "  (3223, 554)\t0.354358943919\n",
      "  (2649, 419)\t9.26649537103e-08\n",
      "  (419, 2649)\t9.26649537103e-08\n"
     ]
    }
   ],
   "source": [
    "\"\"\"\n",
    " 用户相似度矩阵存放的数据\n",
    "\"\"\"\n",
    "print(userSimMatrix)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    " 用户好友的分析，读入好友数据\n",
    "\"\"\"\n",
    "friend_data = pd.read_csv('user_friends.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "             user                                            friends\n",
      "10038  1917038415  1665245216 2290640996 3778652389 4087568415 55...\n",
      "15439  1066372954  998633121 2372536210 2988650028 2856329375 479...\n",
      "34751  2692015370  3904802979 1294147973 1074104319 2805407290 11...\n",
      "17135  2671029253  1228475441 1768214926 2396573486 397666997 309...\n",
      "9689   3257773536  1088466695 171390393 1534545823 106132502 4030...\n",
      "22419  1067164735  629183709 2644711345 3839353322 1503925094 350...\n",
      "20414  2039668267  1697731261 806007880 3560986767 517187946 1675...\n",
      "29414  2416491105  1056047803 3191130783 1198196781 1646148934 80...\n",
      "38451   905852095  2542552856 321804693 2749176086 2415509131 272...\n",
      "23307  3893362486  1154912753 3308553030 3425309545 3292629264 26...\n",
      "38532  3823320698  3884275744 1826673717 646850331 2798906413 393...\n",
      "20483  3908243396  337684766 3408789316 1488142569 2395886581 242...\n",
      "5058   3785115584  1081453502 1596718769 1331286446 2707750925 17...\n",
      "34971  3258281955  1499368751 4195641138 2620344539 4094239608 24...\n",
      "8282   1625530935  2265213067 4075960364 3885690650 4148192029 21...\n",
      "6354   3492312016  647336762 1799023182 1005900562 1278424784 164...\n",
      "12609  3681459280  2782819889 1901310537 1400854654 2732942345 19...\n",
      "31594  3765513583  246299414 631254192 1718362867 187723915 46385...\n",
      "37390  3269471699  1379637936 2539255188 25416666 1739626741 1627...\n",
      "14181  3475233110  40956021 3382848269 2212253016 2593552244 3459...\n",
      "7545   1679420385  329243624 3931194914 2807056066 4124056101 304...\n",
      "8634    147627126  1418790921 2414779565 3957124466 2714644249 36...\n",
      "29889  3031242464  2530289664 160417832 3098177915 1448856698 395...\n",
      "19285  2071663365  3882476222 1379410697 729486889 4133093085 353...\n",
      "8629   2162823560  631949964 2973363129 168588856 3525889830 3236...\n",
      "12382  1882369333  292569783 133509082 3641769791 3630601616 2069...\n",
      "1057   1349230619  2900847497 403965397 1171082896 1657802034 211...\n",
      "25272  1889089758  1165230243 13300947 3852062571 2853124709 2492...\n",
      "10204  2971846635  1483246054 246891423 1890621952 798312921 3368...\n",
      "11524  3389773360  2564331507 3855093055 851992591 1995219350 148...\n",
      "...           ...                                                ...\n",
      "16123  2465513009  8846777 4199657340 3623162585 3441547565 71478...\n",
      "19958  3424054391  1789337475 1240570706 1132593110 1282963953 19...\n",
      "815    3138500404  2116571994 1694406816 4016200161 2910735200 41...\n",
      "21283  1038960564  3875003107 1613715704 3953907778 1831104257 30...\n",
      "2017   1802788012  2174084911 2751146552 2747945141 3524775039 63...\n",
      "11280  3005728385  1499144083 2060403538 1539828586 1951934961 27...\n",
      "7180   2054648409  2792315690 1962674336 2694462872 3454063111 32...\n",
      "9320     97062150  3236841600 2990991159 3281534919 668063845 311...\n",
      "4125    293229720  2467980416 1346449342 4239716699 2353791680 69...\n",
      "30150  3721561384  4172967093 4292577784 3967520198 2102952816 31...\n",
      "27698  2348719537  2752783835 2718800003 3855357934 293634422 709...\n",
      "12915  1151239535  1717651423 4081878998 2413346481 955587678 768...\n",
      "21622  2269787345  232732566 3402253639 3920411326 261986314 4161...\n",
      "13968   306153925  3917410329 169506621 70424368 4270625774 23050...\n",
      "14999  2794470551  745840013 3108457543 3173684979 3076442752 168...\n",
      "7882   2609208135  2580902974 3354321049 1666736582 381607402 381...\n",
      "34022  1313492534  1921271666 3475194085 3116671911 3278176097 26...\n",
      "5604    893322374  1976578803 2552517859 1397692636 4024109025 36...\n",
      "33808  1358222118  2893668588 2803527348 216267058 4033626882 229...\n",
      "19999  2010045207  2130845297 3559385950 3116873874 2462424292 10...\n",
      "18804  2116203935  1525755481 778426443 2588487054 703514907 6709...\n",
      "5056   4278168842  300906357 1076165634 1590264036 2515407385 542...\n",
      "22169  3317432819  1277236489 4191129862 3498469077 3591025408 18...\n",
      "27758   531967718  301434010 900511024 1014835167 1482425186 2366...\n",
      "16192   378788595  971116867 1419767373 2197647231 3323547841 160...\n",
      "12170  2217853337  1483246054 1704337845 765045191 1347649029 329...\n",
      "6151   3573553441  1857848801 3528110017 366202063 499247054 1556...\n",
      "3063      4236494  2079929261 4035599682 1609007562 3162489799 16...\n",
      "17871  2764881224  807096764 3676872343 3989472711 3258220935 352...\n",
      "9194   1739369956  1076165634 4174432457 2159740684 82608564 1068...\n",
      "\n",
      "[3391 rows x 2 columns]\n"
     ]
    }
   ],
   "source": [
    "\"\"\"\n",
    " 删选出只在train和test数据集出现的用户的好友信息\n",
    "\"\"\"\n",
    "friend_user = pd.DataFrame()\n",
    "for key in userindex:\n",
    "    friend_user = friend_user.append(friend_data[friend_data['user'] == key])\n",
    "print(friend_user)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    " 读入只在train和test数据集出现的活动信息\n",
    "\"\"\"\n",
    "eventindex = pickle.load(open('eventIndex.pkl','rb'))\n",
    "nevents = len(eventindex.keys())\n",
    "\n",
    "\"\"\"\n",
    " 生成userEventScores(用户对活动感兴趣)。\n",
    "\"\"\"\n",
    "userEventScores = ss.dok_matrix((nusers, nevents))\n",
    "ftrain = open(\"train.csv\")\n",
    "ftrain.readline()\n",
    "for line in ftrain:\n",
    "    cols = line.strip().split(\",\")\n",
    "    i = userindex[cols[0]]\n",
    "    j = eventindex[cols[1]]\n",
    "    score = int(cols[4])\n",
    "    userEventScores[i,j] = score\n",
    "ftrain.close()\n",
    "\n",
    "\"\"\"\n",
    " 统计每个用户好友的数量。\n",
    "\"\"\"\n",
    "numFriends = np.zeros((nusers))\n",
    "# FriendScore = ss.dok_matrix((nusers, nusers))\n",
    "for idx, val in friend_user.iterrows():\n",
    "    friends = val['friends'].split(' ')\n",
    "    user_idx = userindex[val['user']]\n",
    "    numFriends[user_idx] = len(friends)\n",
    "#     for friend in friends:\n",
    "#         if friend in userindex:\n",
    "#             friend_idx = userindex[friend]\n",
    "#             eventsForFriend = userEventScores.getrow(friend_idx).todense()\n",
    "#             score = eventsForFriend.sum() / len(friends)\n",
    "#             FriendScore[user_idx, friend_idx] += score\n",
    "#             FriendScore[friend_idx, user_idx] += score"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[  1.07363558e-05   2.72646930e-04   1.62175480e-04 ...,   1.68391264e-04\n",
      "    2.54282111e-06   2.69539037e-04]]\n"
     ]
    }
   ],
   "source": [
    "\"\"\"\n",
    " 归一化数据\n",
    "\"\"\"\n",
    "sumFriend = numFriends.sum(axis = 0)\n",
    "numFriends = numFriends / sumFriend\n",
    "sio.mmwrite('numFriends',np.matrix(numFriends))\n",
    "print(np.matrix(numFriends))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# FriendScore = normalize(FriendScore, norm=\"l1\", axis=0, copy=False)\n",
    "# sio.mmwrite(\"userFriendsScore\", FriendScore)\n",
    "# print(FriendScore)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 活动数据的分析"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 13418 entries, 0 to 13417\n",
      "Data columns (total 10 columns):\n",
      "Unnamed: 0    13418 non-null int64\n",
      "event_id      13418 non-null int64\n",
      "user_id       13418 non-null int64\n",
      "start_time    13418 non-null object\n",
      "city          6326 non-null object\n",
      "state         4550 non-null object\n",
      "zip           1414 non-null object\n",
      "country       6353 non-null object\n",
      "lat           8062 non-null float64\n",
      "lng           8062 non-null float64\n",
      "dtypes: float64(2), int64(3), object(5)\n",
      "memory usage: 1.0+ MB\n",
      "None\n"
     ]
    }
   ],
   "source": [
    "\"\"\"\n",
    " 活动本身的分析\n",
    " 原有的event的数据量大。所以先分析在训练和测试集中出现的event的相关性\n",
    "\"\"\"\n",
    "event_data = pd.read_csv('final_event.csv')\n",
    "event_content = event_data.iloc[:,10:]\n",
    "event_other = event_data.iloc[:,:10]\n",
    "print(event_other.info())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    " 缺失数据的处理\n",
    "\"\"\"\n",
    "event_other['city'].fillna('others',inplace=True)\n",
    "event_other['state'].fillna('others',inplace=True)\n",
    "event_other['country'].fillna('others',inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    " 根据city出现的次数进行分类，形成一个新的特征。对city的出现次数小于60个的，分到‘others’类。大于60的，city类别不变，就是city自身\n",
    "\"\"\"\n",
    "def getcity_cn(city_name):\n",
    "    city_cn = event_other['city'].value_counts()\n",
    "    for idx,val in city_cn.items():\n",
    "        if city_name == idx:\n",
    "            if val >= 60:\n",
    "                return idx\n",
    "            else:\n",
    "                return 'others'\n",
    "event_other['city_cat'] = event_other.apply(lambda row : getcity_cn(row.city),axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    " 根据state出现的次数进行分类，形成一个新的特征。对state的出现次数小于50个的，分到‘others’类。大于60的，state类别不变，就是state自身\n",
    "\"\"\"\n",
    "def getstat_cn(stat_name):\n",
    "    stat_cn = event_other['state'].value_counts()\n",
    "    for idx,val in stat_cn.items():\n",
    "        if stat_name == idx:\n",
    "            if val >= 50:\n",
    "                return idx\n",
    "            else:\n",
    "                return 'others' \n",
    "event_other['stat_cat'] = event_other.apply(lambda row : getstat_cn(row.state),axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    " 根据country出现的次数进行分类，形成一个新的特征。对country的出现次数小于50个的，分到‘others’类。\n",
    " 大于60的，country类别不变，就是country自身\n",
    "\"\"\"\n",
    "def getcountry_cn(country_name):\n",
    "    country_cn = event_other['country'].value_counts()\n",
    "    for idx,val in country_cn.items():\n",
    "        if country_name == idx:\n",
    "            if val >= 50:\n",
    "                return idx\n",
    "            else:\n",
    "                return 'others' \n",
    "event_other['country_cat'] = event_other.apply(lambda row : getcountry_cn(row.country),axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    " 对缺失的lat和lng，用均值来填充\n",
    "\"\"\"\n",
    "event_other['lat'].fillna(np.mean(event_other['lat']),inplace=True)\n",
    "event_other['lng'].fillna(np.mean(event_other['lng']),inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    " 应为有了country和state的信息。个人觉得zip特征有些重复，可以删除\n",
    "\"\"\"\n",
    "event_other.drop('zip',axis=1,inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Index(['Unnamed: 0', 'event_id', 'user_id', 'start_time', 'city', 'state',\n",
      "       'country', 'lat', 'lng', 'city_cat', 'stat_cat', 'country_cat'],\n",
      "      dtype='object')\n"
     ]
    }
   ],
   "source": [
    "print(event_other.columns)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    "  处理日期型字段，格式化成年+月的形式\n",
    "\"\"\"\n",
    "def getStartTime(dateString):\n",
    "    #dateString = '2012-07-11T03:04:29.622Z'\n",
    "    dt = datetime.datetime.strptime(dateString, \"%Y-%m-%dT%H:%M:%S.%fZ\")\n",
    "    return \"\".join([str(dt.year), str(dt.month)])\n",
    "event_other['start_time_format'] = event_other.apply(lambda row:getStartTime(str(row['start_time'])),axis = 1)\n",
    "event_other.drop('start_time',axis = 1, inplace=True)\n",
    "event_other.drop('city',axis = 1, inplace=True)\n",
    "event_other.drop('state',axis = 1, inplace=True)\n",
    "event_other.drop('country',axis = 1, inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   Unnamed: 0    event_id     user_id        lat        lng city_cat stat_cat  \\\n",
      "0           0   684921758  3647864012  25.727517 -24.807209   others   others   \n",
      "1           1   244999119  3476440521  25.727517 -24.807209   others   others   \n",
      "2           2  3928440935   517514445  25.727517 -24.807209   others   others   \n",
      "3           3  2582345152   781585781  25.727517 -24.807209   others   others   \n",
      "4           4  1051165850  1016098580  25.727517 -24.807209   others   others   \n",
      "5           5  1212611096  1426522332  25.727517 -24.807209   others   others   \n",
      "6           6  3689283674   725266702  25.727517 -24.807209   others   others   \n",
      "7           7  2584113432   613687941  25.727517 -24.807209   others   others   \n",
      "8           8  3365728297  1098509207  47.058000  21.926000   others   others   \n",
      "9           9  2912638473  3598071768  25.727517 -24.807209   others   others   \n",
      "\n",
      "  country_cat start_time_format  \n",
      "0      others            201210  \n",
      "1      others            201211  \n",
      "2      others            201211  \n",
      "3      others            201210  \n",
      "4      others             20129  \n",
      "5      others            201211  \n",
      "6      others            201211  \n",
      "7      others            201210  \n",
      "8      others            201210  \n",
      "9      others            201210  \n"
     ]
    }
   ],
   "source": [
    "print(event_other.head(10))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(13418, 3)\n"
     ]
    }
   ],
   "source": [
    "\"\"\"\n",
    "用 PCA 来分析c_1 到 c_other列的数据\n",
    "\"\"\"\n",
    "from sklearn.preprocessing import StandardScaler,MinMaxScaler\n",
    "from sklearn.decomposition import PCA\n",
    "pca = PCA(n_components=3,random_state = 1)\n",
    "std = MinMaxScaler()\n",
    "std.fit_transform(event_content)\n",
    "pca.fit(event_content)\n",
    "pca_train_data = pca.transform(event_content)\n",
    "print(pca_train_data.shape)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ -4.74318829e+01   1.09174202e+01  -7.82119332e-02]\n",
      " [ -4.93657138e+01   1.13923366e+01  -5.87672721e-03]\n",
      " [ -4.48256290e+01   9.29477031e+00  -5.21168410e-03]\n",
      " ..., \n",
      " [ -4.67497348e+01   9.71984271e+00  -8.13669783e-02]\n",
      " [ -5.06341985e+01   1.07587718e+01   2.43489155e-01]\n",
      " [  7.28643605e+01  -1.78016095e+01   7.92160753e+00]]\n"
     ]
    }
   ],
   "source": [
    "print(pca_train_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:15: DeprecationWarning: \n",
      ".ix is deprecated. Please use\n",
      ".loc for label based indexing or\n",
      ".iloc for positional indexing\n",
      "\n",
      "See the documentation here:\n",
      "http://pandas.pydata.org/pandas-docs/stable/indexing.html#ix-indexer-is-deprecated\n",
      "  from ipykernel import kernelapp as app\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Dimension 1 mainly element: c_other    0.96779\n",
      "Name: Dimension 1, dtype: float64\n"
     ]
    },
    {
     "data": {
      "image/png": "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\nzcvLG66rq+uaGrdz586lHo8nTavVqmlpaeP79+/vEkKIr3/964EjR46kms3mNZIkib/5m785//DD\nD5+P5jNcjaSqM3bPAAAAAMQpRVG6bDbbQKzziGeKomTabLaccPYykgcAAAAAITCSBwAAACBiKisr\nDfkfJEwAACAASURBVPX19emT10pLS89VVVX1xyqn2WAkDwAAALiBMZI3M0byAAAAAGAOUDABAAAA\nQAgUTAAAAAAQAgUTAAAAAITAKXkAAADAPPLbN1flR/J+dxefisiHcHfv3p3x7LPPLtfr9WNCCPHo\no49+VFFRMSCEEN/85jez33jjjTQhhHjqqafObNu2LRCJ34wECiYAAAAAUWG32wM1NTU9k9f++7//\ne7GiKMktLS3Nly5d0txxxx3mBx988Hx6evqVWOU5GSN5AAAAAGbF7XZnmEwmq9lstjocjpXXs7e5\nuTnxc5/73McJCQkiNTX1itVqHX7ttdcWz1Wu14uCCQAAAEDYvF5vosvlkhsaGtrb2tpa9uzZ0xMq\n9tChQ2kmk8laUlKS29HRkSCEELfeeuulN954Y/GFCxc0fX19C95+++3U3t7ehdF7gqujYAIAAAAQ\nNo/Hk2q32wOyLI8LIYRerw9OF7d58+bBnp6epvb29pbi4uILW7duXSmEEGVlZUP33HPP4IYNGywP\nPvjgyvXr13+8YMECNZrPcDUUTAAAAADCpqqqkCRpxgLHYDAEk5KSVCGEqKioONvc3Jw8ca2qqqq/\ntbW15e233z6pqqowmUyX5zLn60HBBAAAACBsJSUlQwcPHkzv7+/XCiGE3+/XThfX3d2dMPF3bW1t\nWm5u7ogQQoyPj4uJvX/4wx+SWltbk8vKys5HI/drwSl5AAAAwDwSqWPAr1VBQcGI0+nsKywstGg0\nGjUvL2+4rq6ua2rczp07l3o8njStVqumpaWN79+/v0sIIUZHR6U777zTIoQQKSkpwVdeeeXDhISE\nqdtjRlLVuBkPBAAAAHCdFEXpstlsA7HOI54pipJps9lywtnLSB4AAAAAhMBIHgAAAICIqaysNNTX\n16dPXistLT1XVVXVH6ucZoORPAAAAOAGxkjezBjJAwAAAIA5QMEEAAAAACFQMAEAAABACBRMAAAA\nABACp+QBAAAA84jhyHv5kbxf/998OmIfwt27d++SF154YZkkSWL16tXDr7/+eqcQQvzkJz/JcLlc\n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\nPRr/0ksvJcU6bwomAAAAAAtSW1ubajKZrGaz2VpSUrIhVIzZbD6Tm5t7+twO0f79+1dv3759Qq/X\nBy+77LLg9u3bJ15++eXVx44d0506dUpz2223TWk0Grn33ntH9+/fvyYmGzoLI3kAAAAAIuZyueKr\nq6sNb7/9drfBYAgMDQ1pv87zg4ODuoyMjDNzf69fv/7M4OCg7tixYzqDweCfu37llVee8Xq9umjm\nfj7oMAEAAACIWFtbW1JRUdFJg8EQEBHR6/XBr/N8qO/CKooS9nqsUTABAAAAiJiqqqIoyn9WN+cp\nIyPDPzAwsGLu78HBwRXr1q3zG41G/9kdpWPHjq1IT0/3h15l8VAwAQAAAIhYfn7+RHNzc4rP59OK\nfHmIw9d5vqSkZNzpdCYNDw9rh4eHtU6nM6mkpGT8yiuv9F966aWzr7/++qWzs7Py5z//ObW4uPgf\ni7OL8HiHCQAAALiIROsY8POVk5MzY7fbvXl5eZkajUbNysqabmxs7D83zul0XvK9731v88TEhPb1\n119P/s1vfrPuyJEjh/R6ffDxxx8/kZ2dbREReeKJJ07MjfU9/fTTx+6///4NMzMzyi233DJxzz33\njMdybyIiSqjZQAAAAAAXBrfb3W+z2UaWOo/lzO12r7XZbMZInmUkDwAAAADCYCQPAAAAQNRUVFSk\nNzU1pZx9rbi4eKyqqsq3VDktBCN5AAAAwAWMkbz5MZIHAAAAAIuAggkAAAAAwqBgAgAAAIAwKJgA\nAAAAIAxOyQMAAAAuIsaf/3d2NNfr/+13FvVDuPX19clWq3UmOzt7RkRk69at5urq6s+2b98+vZi/\ne77oMAEAAABYMvv3708+ePDgqmisFQgEorHMv6FgAgAAALAgtbW1qSaTyWo2m60lJSUbQsV4PJ4V\n27ZtM5lMJuu2bdtMvb29K1577bVLOzo6kh0OR0ZmZqb10KFDK0VE9u3bt+bqq6+2GI3GrNbW1gSR\nL4uhBx98MCMrK8tiMpmsv/vd79aKiLzyyiuJubm5pqKiog1ms3lLtPfGSB4AAACAiLlcrvjq6mrD\n22+/3W0wGAJDQ0PaUHEPPfTQFWVlZaOPPPLI6J49e1Iffvjhyzs6Ovpuu+22fxQWFo7fd999J+di\nA4GA8vHHHx9+8cUXV//qV79al5+f79mzZ8/a1atXBz/55JPDp0+fVq6//vrMoqKiCRGRgwcPXvrh\nhx8eyszMPBPt/dFhAgAAABCxtra2pKKiopMGgyEgIqLX64Oh4j788MNLH3jggTERkYcffnjsgw8+\nSAi35j333HNSROTGG2+cGhgYWCEi0tHRkfTXv/41NTMz03rttddaTp48GdfV1RUvInLNNddMLUax\nJEKHCQAAAMACqKoqiqKo0VwzPj5eFRGJi4uTYDCo/PN3lN///vfH77777omzY1955ZXESy65ZDaa\nv382OkwAAAAAIpafnz/R3Nyc4vP5tCIi4Ubyrr322qk//vGPa0RE6urqUnJyck6JiCQkJAQnJibm\nrUtuv/328WeeeeayL774QhEROXjw4MrzeW6h6DABAAAAF5HFPgb8XDk5OTN2u92bl5eXqdFo1Kys\nrOnGxsb+c+OeeeaZ4zt37jQ+9dRT6ampqYEXXnihX0Tk3nvvHXv44YeNf/jDH/QvvfRSX7jfefTR\nR0f6+/tXXn311RZVVZWUlBR/S0tL2PhoUVQ1qt0zAAAAADHkdrv7bTbbyFLnsZy53e61NpvNGMmz\njOQBAAAAQBiM5AEAAACImoqKivSmpqaUs68VFxePVVVV+ZYqp4VgJA8AAAC4gDGSNz9G8gAAAID/\nvWZnZ2eVpU5iufrn/03Ex45TMAEAAAAXtk+Gh4dXUzT9p9nZWWV4eHi1iHwS6Rq8wwQAAABcwAKB\nwH/5fL4/+ny+LKEhcq5ZEfkkEAj8V6QL8A4TAAAAAIRBBQoAAAAAYVAwAQAAAEAYFEwAAAAAEAYF\nEwAAAACEQcEEAAAAAGH8f5H7pQZ4r/L2AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x2340058c748>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "\"\"\"\n",
    "  PCA结果\n",
    "\"\"\"\n",
    "import matplotlib.pyplot as plt\n",
    "def pca_results(event_data, pca):\n",
    "    dimensions =  ['Dimension {}'.format(i) for i in range(1,len(pca.components_)+1)]\n",
    "\n",
    "    # PCA components个数\n",
    "    components = pd.DataFrame(np.round(pca.components_, 5), columns = event_data.keys())\n",
    "    components.index = dimensions\n",
    "\n",
    "    # 创建bar plot图\n",
    "    fig, ax = plt.subplots(figsize = (14,10))\n",
    "    \n",
    "    print('Dimension 1 mainly element:',components.loc['Dimension 1'].ix[components.iloc[0,:] > 0.2])\n",
    "\n",
    "    components.plot(ax = ax, kind = 'bar');\n",
    "    ax.set_ylabel(\"Feature Weights\")\n",
    "    ax.set_xticklabels(dimensions, rotation=0)\n",
    "\n",
    "    # 显示explained variance ratios\n",
    "    for i, ev in enumerate(pca.explained_variance_ratio_):\n",
    "        ax.text(i-0.3, ax.get_ylim()[1], \"Explained Variance\\n%.4f\"%(ev))\n",
    "\n",
    "pca_result_pic = pca_results(event_content, pca)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 可以看到第一个主成分对应的主要是c_other"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    " 将PCA分析的结果添加到event的数据集当中，降低维度\n",
    "\"\"\"\n",
    "event_col = event_content.columns\n",
    "event_content.drop(event_col,axis = 1, inplace=True)\n",
    "pca_train = pd.DataFrame(pca_train_data,columns = ['pca1','pca2','pca3'], index = event_content.index)\n",
    "event_content = pd.concat([event_content,pca_train], axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "event_total = pd.concat([event_other,event_content],axis = 1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   Unnamed: 0    event_id     user_id        lat        lng city_cat stat_cat  \\\n",
      "0           0   684921758  3647864012  25.727517 -24.807209   others   others   \n",
      "1           1   244999119  3476440521  25.727517 -24.807209   others   others   \n",
      "2           2  3928440935   517514445  25.727517 -24.807209   others   others   \n",
      "3           3  2582345152   781585781  25.727517 -24.807209   others   others   \n",
      "4           4  1051165850  1016098580  25.727517 -24.807209   others   others   \n",
      "5           5  1212611096  1426522332  25.727517 -24.807209   others   others   \n",
      "6           6  3689283674   725266702  25.727517 -24.807209   others   others   \n",
      "7           7  2584113432   613687941  25.727517 -24.807209   others   others   \n",
      "8           8  3365728297  1098509207  47.058000  21.926000   others   others   \n",
      "9           9  2912638473  3598071768  25.727517 -24.807209   others   others   \n",
      "\n",
      "  country_cat start_time_format        pca1       pca2       pca3  \n",
      "0      others            201210  -47.431883  10.917420  -0.078212  \n",
      "1      others            201211  -49.365714  11.392337  -0.005877  \n",
      "2      others            201211  -44.825629   9.294770  -0.005212  \n",
      "3      others            201210  -48.534187  10.637359  -0.131245  \n",
      "4      others             20129  -47.567878  10.406038  -0.166265  \n",
      "5      others            201211  -35.150451   6.888362  -0.459109  \n",
      "6      others            201211  -29.314195   5.448826  -0.776007  \n",
      "7      others            201210  286.923722 -78.090648  16.141210  \n",
      "8      others            201210  -32.246007   6.153413  -0.596131  \n",
      "9      others            201210  -53.273805  12.337416   0.297645  \n"
     ]
    }
   ],
   "source": [
    "print(event_total.head(10))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "13418\n"
     ]
    }
   ],
   "source": [
    "eventindex = pickle.load(open('eventIndex.pkl','rb'))\n",
    "nevents = len(eventindex.keys())\n",
    "print(nevents)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    "  对字符数据进行LabelEncoder编码\n",
    "\"\"\"\n",
    "lbl = LabelEncoder()\n",
    "city_cat_id = lbl.fit_transform(event_total['city_cat'])\n",
    "stat_cat_id = lbl.fit_transform(event_total['stat_cat'])\n",
    "country_cat_id = lbl.fit_transform(event_total['country_cat'])\n",
    "event_total['city_cat_id'] = city_cat_id\n",
    "event_total['stat_cat_id'] =  stat_cat_id\n",
    "event_total['country_cat_id'] = country_cat_id\n",
    "event_total.drop(['city_cat','stat_cat','country_cat'],axis = 1,inplace = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   Unnamed: 0    event_id     user_id        lat        lng start_time_format  \\\n",
      "0           0   684921758  3647864012  25.727517 -24.807209            201210   \n",
      "1           1   244999119  3476440521  25.727517 -24.807209            201211   \n",
      "2           2  3928440935   517514445  25.727517 -24.807209            201211   \n",
      "3           3  2582345152   781585781  25.727517 -24.807209            201210   \n",
      "4           4  1051165850  1016098580  25.727517 -24.807209             20129   \n",
      "5           5  1212611096  1426522332  25.727517 -24.807209            201211   \n",
      "6           6  3689283674   725266702  25.727517 -24.807209            201211   \n",
      "7           7  2584113432   613687941  25.727517 -24.807209            201210   \n",
      "8           8  3365728297  1098509207  47.058000  21.926000            201210   \n",
      "9           9  2912638473  3598071768  25.727517 -24.807209            201210   \n",
      "\n",
      "         pca1       pca2       pca3  city_cat_id  stat_cat_id  country_cat_id  \n",
      "0  -47.431883  10.917420  -0.078212           10           10              10  \n",
      "1  -49.365714  11.392337  -0.005877           10           10              10  \n",
      "2  -44.825629   9.294770  -0.005212           10           10              10  \n",
      "3  -48.534187  10.637359  -0.131245           10           10              10  \n",
      "4  -47.567878  10.406038  -0.166265           10           10              10  \n",
      "5  -35.150451   6.888362  -0.459109           10           10              10  \n",
      "6  -29.314195   5.448826  -0.776007           10           10              10  \n",
      "7  286.923722 -78.090648  16.141210           10           10              10  \n",
      "8  -32.246007   6.153413  -0.596131           10           10              10  \n",
      "9  -53.273805  12.337416   0.297645           10           10              10  \n"
     ]
    }
   ],
   "source": [
    "print(event_total.head(10))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    "  将活动数据读入到矩阵中\n",
    "\"\"\"\n",
    "eventMatrix = ss.dok_matrix((nevents, 9))\n",
    "for idx,val in event_total.iterrows():\n",
    "    eventMatrix[eventindex[str(val['event_id'])],0] = val['lat']\n",
    "    eventMatrix[eventindex[str(val['event_id'])], 1] = val['lng']\n",
    "    eventMatrix[eventindex[str(val['event_id'])], 2] = val['city_cat_id']\n",
    "    eventMatrix[eventindex[str(val['event_id'])], 3] = val['stat_cat_id']\n",
    "    eventMatrix[eventindex[str(val['event_id'])], 4] = val['country_cat_id']\n",
    "    eventMatrix[eventindex[str(val['event_id'])], 5] = val['start_time_format']\n",
    "    eventMatrix[eventindex[str(val['event_id'])], 6] = val['pca1']\n",
    "    eventMatrix[eventindex[str(val['event_id'])], 7] = val['pca2']\n",
    "    eventMatrix[eventindex[str(val['event_id'])], 8] = val['pca3']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  (13311, 0)\t25.7275173654\n",
      "  (13311, 1)\t-24.8072087571\n",
      "  (13311, 2)\t10.0\n",
      "  (13311, 3)\t10.0\n",
      "  (13311, 4)\t10.0\n",
      "  (13311, 5)\t201210.0\n",
      "  (13311, 6)\t-47.4318828593\n",
      "  (13311, 7)\t10.9174201988\n",
      "  (13311, 8)\t-0.0782119332383\n",
      "  (4268, 0)\t25.7275173654\n",
      "  (4268, 1)\t-24.8072087571\n",
      "  (4268, 2)\t10.0\n",
      "  (4268, 3)\t10.0\n",
      "  (4268, 4)\t10.0\n",
      "  (4268, 5)\t201211.0\n",
      "  (4268, 6)\t-49.3657138269\n",
      "  (4268, 7)\t11.3923366098\n",
      "  (4268, 8)\t-0.00587672720866\n",
      "  (12170, 0)\t25.7275173654\n",
      "  (12170, 1)\t-24.8072087571\n",
      "  (12170, 2)\t10.0\n",
      "  (12170, 3)\t10.0\n",
      "  (12170, 4)\t10.0\n",
      "  (12170, 5)\t201211.0\n",
      "  (12170, 6)\t-44.82562898\n",
      "  :\t:\n",
      "  (9142, 2)\t10.0\n",
      "  (9142, 3)\t7.0\n",
      "  (9142, 4)\t2.0\n",
      "  (9142, 5)\t20129.0\n",
      "  (9142, 6)\t-46.7497347622\n",
      "  (9142, 7)\t9.71984270719\n",
      "  (9142, 8)\t-0.0813669783032\n",
      "  (7812, 0)\t51.481\n",
      "  (7812, 1)\t-0.191\n",
      "  (7812, 2)\t2.0\n",
      "  (7812, 3)\t10.0\n",
      "  (7812, 4)\t8.0\n",
      "  (7812, 5)\t201210.0\n",
      "  (7812, 6)\t-50.634198503\n",
      "  (7812, 7)\t10.7587717718\n",
      "  (7812, 8)\t0.243489154636\n",
      "  (11176, 0)\t34.041\n",
      "  (11176, 1)\t-118.259\n",
      "  (11176, 2)\t3.0\n",
      "  (11176, 3)\t2.0\n",
      "  (11176, 4)\t9.0\n",
      "  (11176, 5)\t201210.0\n",
      "  (11176, 6)\t72.8643605139\n",
      "  (11176, 7)\t-17.8016095397\n",
      "  (11176, 8)\t7.92160753456\n"
     ]
    }
   ],
   "source": [
    "print(eventMatrix)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    " 对活动数据进行归一化\n",
    "\"\"\"\n",
    "eventMatrix = normalize(eventMatrix,norm=\"l1\", axis=0, copy=False)\n",
    "sio.mmwrite(\"eventMatrix\", eventMatrix)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    "  定义活动相关性矩阵。uniqueEventPairs指的是互相关联的活动，即至少一个活动被同一个用户行为过\n",
    "\"\"\"\n",
    "eventSimMatrix = ss.dok_matrix((nevents, nevents))\n",
    "uniqueEventPairs = pickle.load(open('PE_uniqueEventPairs.pkl','rb'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    " 调用scipy的矩阵距离计算公式来计算关联活动之间的相似度\n",
    "\"\"\"\n",
    "for e1, e2 in uniqueEventPairs:\n",
    "    if (e1,e2) not in eventSimMatrix:\n",
    "        sim_event = sim(eventMatrix.getrow(e1).todense(),eventMatrix.getrow(e2).todense())\n",
    "        eventSimMatrix[e1, e2] = sim_event\n",
    "        eventSimMatrix[e2, e1] = sim_event\n",
    "sio.mmwrite(\"eventSimMatrix\", eventSimMatrix)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  (7824, 10981)\t1.28904300841\n",
      "  (10981, 7824)\t1.28904300841\n",
      "  (5473, 13047)\t0.765231759626\n",
      "  (13047, 5473)\t0.765231759626\n",
      "  (10876, 10301)\t0.119161230729\n",
      "  (10301, 10876)\t0.119161230729\n",
      "  (9885, 12223)\t0.0197198492718\n",
      "  (12223, 9885)\t0.0197198492718\n",
      "  (4489, 10774)\t0.0810154953339\n",
      "  (10774, 4489)\t0.0810154953339\n",
      "  (6592, 12273)\t0.0588559726678\n",
      "  (12273, 6592)\t0.0588559726678\n",
      "  (6017, 5362)\t0.130003393254\n",
      "  (5362, 6017)\t0.130003393254\n",
      "  (11629, 1596)\t1.16976502293\n",
      "  (1596, 11629)\t1.16976502293\n",
      "  (985, 11483)\t0.0434849628755\n",
      "  (11483, 985)\t0.0434849628755\n",
      "  (8355, 5599)\t0.413423388011\n",
      "  (5599, 8355)\t0.413423388011\n",
      "  (4099, 9043)\t1.20388094594\n",
      "  (9043, 4099)\t1.20388094594\n",
      "  (1957, 10267)\t0.619660998036\n",
      "  (10267, 1957)\t0.619660998036\n",
      "  (2088, 60)\t0.692021177072\n",
      "  :\t:\n",
      "  (13163, 1767)\t0.228485205359\n",
      "  (5284, 10109)\t0.551781586632\n",
      "  (10109, 5284)\t0.551781586632\n",
      "  (3618, 2013)\t0.479349942725\n",
      "  (2013, 3618)\t0.479349942725\n",
      "  (4722, 5270)\t1.34743375475\n",
      "  (5270, 4722)\t1.34743375475\n",
      "  (9128, 888)\t0.00443369166794\n",
      "  (888, 9128)\t0.00443369166794\n",
      "  (3521, 2585)\t1.10634587755\n",
      "  (2585, 3521)\t1.10634587755\n",
      "  (9231, 8341)\t0.093128192556\n",
      "  (8341, 9231)\t0.093128192556\n",
      "  (3123, 8046)\t0.837450150282\n",
      "  (8046, 3123)\t0.837450150282\n",
      "  (6932, 4544)\t0.234817808834\n",
      "  (4544, 6932)\t0.234817808834\n",
      "  (10499, 6581)\t0.00813226462311\n",
      "  (6581, 10499)\t0.00813226462311\n",
      "  (8776, 7250)\t0.996877727543\n",
      "  (7250, 8776)\t0.996877727543\n",
      "  (4882, 9512)\t0.104618538259\n",
      "  (9512, 4882)\t0.104618538259\n",
      "  (12446, 8166)\t0.979041560079\n",
      "  (8166, 12446)\t0.979041560079\n"
     ]
    }
   ],
   "source": [
    "print(eventSimMatrix)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  (3314, 0)\t16.0\n",
      "  (3675, 0)\t27.0\n",
      "  (5434, 0)\t-3.0\n",
      "  (8549, 0)\t21.0\n",
      "  (3882, 0)\t6.0\n",
      "  (12058, 0)\t28.0\n",
      "  (7572, 0)\t99.0\n",
      "  (1020, 0)\t28.0\n",
      "  (1876, 0)\t-13.0\n",
      "  (2705, 0)\t2.0\n",
      "  (2526, 0)\t14.0\n",
      "  (6301, 0)\t7.0\n",
      "  (4886, 0)\t9.0\n",
      "  (7480, 0)\t7.0\n",
      "  (5738, 0)\t222.0\n",
      "  (2047, 0)\t19.0\n",
      "  (11482, 0)\t3.0\n",
      "  (5358, 0)\t7.0\n",
      "  (8350, 0)\t13.0\n",
      "  (10179, 0)\t6.0\n",
      "  (12050, 0)\t-38.0\n",
      "  (8345, 0)\t30.0\n",
      "  (11084, 0)\t5.0\n",
      "  (900, 0)\t10.0\n",
      "  (8396, 0)\t14.0\n",
      "  :\t:\n",
      "  (5725, 0)\t1.0\n",
      "  (4468, 0)\t8.0\n",
      "  (9255, 0)\t6.0\n",
      "  (5472, 0)\t98.0\n",
      "  (9777, 0)\t-7.0\n",
      "  (6716, 0)\t5.0\n",
      "  (10373, 0)\t142.0\n",
      "  (10588, 0)\t5.0\n",
      "  (1132, 0)\t15.0\n",
      "  (1386, 0)\t2.0\n",
      "  (1407, 0)\t21.0\n",
      "  (7367, 0)\t9.0\n",
      "  (8331, 0)\t-137.0\n",
      "  (12274, 0)\t-176.0\n",
      "  (2586, 0)\t7.0\n",
      "  (5184, 0)\t8.0\n",
      "  (12412, 0)\t-25.0\n",
      "  (2930, 0)\t21.0\n",
      "  (10340, 0)\t60.0\n",
      "  (9438, 0)\t4.0\n",
      "  (13089, 0)\t-1.0\n",
      "  (4124, 0)\t7.0\n",
      "  (7962, 0)\t11.0\n",
      "  (6577, 0)\t9.0\n",
      "  (3560, 0)\t5.0\n"
     ]
    }
   ],
   "source": [
    "\"\"\"\n",
    " 分析活动的参与和不参与的比例\n",
    "\"\"\"\n",
    "nevents = len(eventindex)\n",
    "eventjoin = ss.dok_matrix((nevents, 1))\n",
    "f = open(\"event_attendees.csv\")\n",
    "f.readline()\n",
    "for line in f:\n",
    "  cols = line.strip().split(\",\")\n",
    "  eventId = cols[0]\n",
    "  if eventId in eventindex:\n",
    "    i = eventindex[eventId]\n",
    "    eventjoin[i, 0] = len(cols[1].split(\" \")) - len(cols[4].split(\" \"))\n",
    "f.close()\n",
    "#eventjoin = normalize(eventjoin, norm=\"l1\", axis=0, copy=False)\n",
    "sio.mmwrite(\"eventjoin\", eventjoin)\n",
    "print(eventjoin)"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "iVBORw0KGgoAAAANSUhEUgAABRQAAAE4CAYAAAAqx3+2AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAP+lSURBVHhe7J0FnFXF98AHW+zA+mOjYHe3ooCBXdiKjR1gIgZ2YRcqdqPYKCq2omIAioH6E1uxW9//fs/OWe7evflid2HP9/OZ3ffm3ndz4syZc860KQU4wzAMwzAMwzAMwzAMwzCMHEzh/xuGYRiGYRiGYRiGYRiGYWRiCkXDMAzDMAzDMAzDMAzDMHJjCkXDMAzDMAzDMAzDMAzDMHJjCkXDMAzDMAzDMAzDMAzDMHJjCkXDMAzDMAzDMAzDMAzDMHJjCkXDMAzDMAzDMAzDMAzDMHJjCkXDMAzDMAzDMAzDMAzDMHJjCkXDMAzDMAzDMAzDMAzDMHJjCkXDMAzDMAzDMAzDMAzDMHJjCkXDMAzDMAzDMAzDMAzDMHJjCkXDMAzDMAzDMAzDMAzDMHJjCkXDMAzDMAzDMAzDMAzDMHJjCkXDMAzDMAzDMAzDMAzDMHJjCkXDMAzDMAzDMAzDMAzDMHJjCkXDMAzDMAzDMAzDMAzDMHJjCkXDMAzDMAzDMAzDMAzDMHJjCkXDMAzDMAzDMAzDMAzDMHJjCkXDMAzDMAzDMAzDMAzDMHJjCkXDMAzDMAzDMAzDMAzDMHJjCkXDMAzDMAzDMAzDMAzDMHJjCkXDMAzDMAzDMAzDMAzDMHJjCkXDMAzDMAzDMAzDMAzDMHJjCkXDMAzDMAzDMAzDMAzDMHJjCsUm5oMPPvCfJi3efvttN3bsWP9t0uPff/91jz/+uP/WdHz22Wfu77//9t+qD+/kzz//9N+ant9++8398ccf/ls6//zzjyuVSv5bdeE515pvv/3W/ffff/5b0/P55583y7v+6aefXJcuXdxbb73lc5qXIUOGuPfff99/M4xJh3322cfdcccd/ls6gwYNckcccUTu9nVS4/nnn6+ZTFGkz/3oo4/cO++8479NftRS9hk9erSU57R+nfL7yy+/+G+14bbbbnN77LGHe/rpp2OvZdy4ce6EE05wL7/8cs1kkKZi1KhR7uqrrxZ5Ko0nn3yypjJva5C5yqFSGa255DxoLlmvpYwjagXX+9hjj/lvkz/NNd6G888/3+2///4iXzQHP//8s3v22Wf9t+oxKdQRUyg2IRTwJZdc0vXp06dBJ/nJJ5/4T8l88803rlevXtLBVhsKahYoFDt27OhWX311N2zYMJ8bz4ABA6RjqgZDhw515513njRQlTDllFO6N998062//vpNOnhAMFhppZXc7bff7nOqC+VhqaWWcrfccovPKZ9yBDeE1sUXX9zdfPPNPieZJ554wq2yyioi9FcbngPlrpZwjwsuuKA799xzfU5+KAeVCsZ00Isttpi79tprMwcT1YT6zrkpx9TF5ma55ZZzK6+8sihn6LxbCq+//rrr3bu323LLLd3vv//ucw2jDoTMgQMHup122skdcMABPjeZiy66SFK3bt2arL4fc8wxbu+993avvPKKz6kNKPx69OghMgUD2I8//thvqQ4HHnig22GHHdx7773nc5K5+OKL3bLLLuv23HPPXLJQGq1N9vn666+lPK+44oruf//7n89tCP3+AgssIAq9r776yt1///0iy3755Zd+j8r59ddfRQF/6qmniqwc5ccff3T9+/d3Xbt2da+99prPrS60+VdccYV77rnnfE5teOCBB2TAvMwyy7gXX3zR5zZmzJgxUrfWWmutxHdTCZOzzIU8fdpppxUeb/3www+uQ4cO7qCDDipbKdhcch40l6zXUsYRtYIJD9oe2uA8fVIRbLzdkAkTJsiEC/WXz2lU2t/HgTJ+3XXXdWussYa01dVikqgjJaNJCISnUvv27VEZl+abb77SCy+84LeUSoGwVQoam9KVV15Zuuaaa2JT9+7d5bccIxi4+l9WzgcffFCaZ555SjfccIPPiWfIkCFy/iWXXLI0fvx4nxvPDDPMUJp55plLweCkFDRQZaeHH364NO+888p5V1999dK4ceP8GcojEC5KQSUvTT311KULL7zQ59aec845R+5h2223Lf3xxx8+t3oEHYAcf4sttij9/PPPPrc4W2+9dWnnnXcuff/99z4nm5NPPlnOvfTSS5eCQaHPjadPnz6yL+nWW2/1udUjGECWHnvsMf8tnWDALNceDAJ8TjaUGa79+eef9zn54do233zzit7P9ddfL+dfc801S8EAyecWJxgElgLB13/L5oADDpDzLrTQQqVnnnnG5+Zn5MiRpTvuuKMUdN4+p3KOOuoouaaDDz7Y5yRDWaPuV5O///67FAgOpauuuqq02267lf7v//5PrkcTdana5zQmXQIBvRQIeFI2unXr1qgPpV0I9+uBICj7Uuc++eQTnzsR2q1evXqVfvnlF5/TELYjcxRl//33l/N26tQps5+vBOqN1pV99tlHnk810fq43nrrSV1N4q+//irNOeecsu+ss85a+vXXX/2W8mhtss9TTz0l13jsscf6nMZoWz3LLLOUXnrpJcnbY4895Hnfe++98r1SkJE5B31kHG+88YZsT+ovHn/88dLnn3/uvxUjGDCLbNOuXTs5x2yzzVZ69913/dbqs8EGG8h5llhiidKHH37ocxtzySWXyH48/1oxucpc5557rpyXOrjZZpvlTozj+F0lz7255DxoLlmvJY0jqs2ff/5ZWmSRReR6F1544dIjjzzit1QHG2835IQTTpB7uOmmm3xOPB999JHoPi677DKfUx1UtplmmmlEjqsWk0IdMYViE/DTTz+VVlhhBXm5DD6jQisKxrZt25aGDx9eevXVV2MThZ7fMyhJGiiMGDGitNVWW5W23HLL3IkGTgve0UcfLR3QhAkT/BEn8uijj8o+e+21l89JhgaOfQ899NDS3XffXbrvvvsapf79+8s+CPxx2zWp8EQ65JBD/BnK58EHH6w/Hs+rKUCJONdcc8k5DzvsMJ9bPRgUaUew6aabSt51110X+76T0oYbblj/XJZZZpnSd999J8fJYpNNNpEO4/333/c5ydC5cPyzzz7b5xQDYYUBTBIIrDznPNfOwIJrYeD89ttv+9x0VLj94osv5Dv1lbq71lprleaYY47SyiuvXC9Y8pm8jTfeWBQIq622mqT99tsvdYCbhgqaSYOm9957r7TNNtuUBg8eLGUiDtoi3gP3TYeaB20jqMvlcM8998jvEXro6NJAEffcc8/5b8mowiXpWShXXHGF7LfrrrtmPvftt9++dNdddzVQ+iMYM2CkLaLcMhDm3U433XRyXNL0009f6tixY6lLly4ikJ966qmlM888szR27Fh/FKO1c/HFF0tZYcLmn3/+8bl1IHgz2US/qYMN2pRpp51W2rw4evbsKcej/4xTKqKgO/7442U7gnXeNkcVivSTtQL5QvvDE088Ufp42q5qgWKWYzP5mjWg1rZp2WWXLR155JGlBx54wG8pj9Ym+6hCEYVeErSX7HPttdf6nLoJdm1DUfZVSiUKRSaGeG/0c3nkGOovfRRll3LDcUnIAshDyHiD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0hk0aJA74ogjcrc9kxrPP/+8u+aaa9w333zjcyZv/v33X/f444/7b5MP9Hk//vij/1Yck90a05JlDujSpYvr06eP+/zzz+X777//Lv+rxWeffeY/1ZZvv/3W/ffff/5b68ZkLMMwDKOl0GwKxcMOO8y1b99e/scJVwhdSy21lFtvvfXcsGHDfG7ljBo1yt1+++0yWMgDiriVV17ZjRw50udMejzyyCNulVVWcTvttJP7+OOPfe6kwf/+9z+32267FVLCPfnkk27xxRd3N998s89J5oknnpBn8/TTT/ucykFYv/LKK2MF3+HDh7t27dq5Hj16VDSoK8rPP//sdtxxR7fwwgu7G2+8UeocdaxWLLfcclJvUMhw7mpyyy23uL59+9YPjoqw++67uyOPPLLZlD7vvvuuO+qoo9xff/3lc4yWyrPPPusGDhwo7eYBBxzgc5O56KKLJHXr1q2mdSvMMccc4/bee2/3yiuv+Jza8fbbb7v99tvPzTfffO7cc8/1uZUzYMAA99NPP/lvlTF06FB33nnn5e7f05hyyindm2++6dZff333zjvv+NxJH5SB888/vyi/y5EHTHZrTHPLHFl8/fXX7uyzz3aHHnqoTCqiYOT9ZymG84Kij3pca3i+Cy64YFntz59//lk1ZSQTwyRl3Lhx/lM6KF6rdQ21lLEMwzAMowhtAoGwaadKPdNNN50Ihvfcc4/r3r27z50IguhGG20kQv2FF17oDjnkEL+lMh5++GG32WabifC3/fbbu6mmmspvief66693n376qZtxxhndfffd5zp37uy3TDpwv9w3QuzgwYNlQDgpwKz/WmutJQOCFVZYwT300ENu3nnn9VuTQdl06qmnuqWXXto9+OCDIoAmcdxxx7mzzjpLPt96661u5513ls+VgEUTSgie93XXXeeWWWYZv6VOobTEEkuItcCZZ57pc2sPyrf/+7//k88MKhDIUZhceumlbsstt3S77LKLm3rqqWV7tTj66KPd+eef7w4++GA5Txq33XabPLM2bdr4nGRQ2jAYok7yvqaYIt+8CAMpBiQo89Zcc033zDPPZNZ/BmFjxozx3yoHhQfvYt111xULg5lnntlvMVoSDPpWX3119+qrr4qC8Nprr23QbjLBgXUI7RJQllA8LbTQQvJ5gQUWkHwFBTbKP9qaGWaYwedOhO1MMMw999w+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PnmGen9F0oYbbpi5EI6GkFALRZSWJCYA4jwf8qZw+KDmkrGi8M55J1ijorhNswI1DMMwDJCp2qCjaVK+++47t8IKK7hASHLBIMr9888/LhAG/NZkRo8e7ZZaaim37LLLuvPOO89tvPHGfks8n3zyiQs6aBcMgFy7du18bjo8jqDDdocccogLhDCf25C816v8/vvv7rnnnnNjx451iy++uFt77bVdIEj5rdXjiSeecIMHD3arrbaa23HHHd0000zjt7QcAqFZ3kUgqLgpp5zS57YMzj33XBcIlu64446TZ5iHv//+27344otu9dVXr+h5U5YpU8Fg20099dQ+t2kJBhhu0KBB7uKLL3bvvvuuCwR2eVfjxo1zgeDsttxyS9kvEITdkCFD3KhRo1wgvLr111/fdenSxS288MKyPS+//fabGzZsmHvkkUfcAgss4Hr37u23TOSnn35yRx11lAsGSIXqXFGoj4cddpj/VoyXX35Zrn/eeef1OcakCHX59ddflzr46KOPyjvdeeedXTCYzl0ng4GYGzNmjAsGioXr8ffff++OOeYYt9lmm7ltttnG5zoXDOTdPPPM46aYYgqfkx/qbd++fd3AgQPdbLPN5nPLg7566NCh7uabb3YbbLCBzy1GMDh2Rx55pLvuuuvcnHPO6XOzGT9+vHvqqafkXcwwwww+tyF9+vRxb775prv22mtdMPj2uRPh/V5xxRXS/6644oo+t3XRr18/eQ60qeWUh9Ymu9WaIjIHzxD5MXr9X375pdQn6siff/7pJkyYIP3mL7/8Iu+avm3GGWd0s8wyi9QL+mpSFl999ZXUKdrATTbZxOdWl0suucQtueSSbqONNvI5ddx9992ST8oL90r78tFHH4nsQrvJs/nmm2+k3P7www/uxx9/dD///LP79ddf3V9//SX3RVvfpk0bf5R4kHd22mknd/bZZ7tevXr53OrRnDKWYRiGYVRKsygUywWFx8cff+wWWWQRn2OEQZCyZzNpgvCP0N9SQLnBQCRO8Y2wu+iii7q2bdv6HMOYtGGgeeedd4ryomPHjq5Tp06Zg8w4RowYIYqTWkwYNTcoeeabb76KJjwYHPNcy1GOVgrKJM7d0iayWgMmuxktDdoihj95FMzIQ+w388wz+5zaYjKWYRiGMSkxSSkUDcMwDMMwDMMwDMMwDMNoXpreTMAwDMMwDMMwDMMwDMMwjEkWUygahmEYhmEYhmEYhmEYhpEbUygahmEYhmEYhmEYhmEYhpEbUygahmEYhmEYhmEYhmEYhpEbUygahmEYhmEYhmEYhmEYhpEbUygahmEYhmEYhmEYhmEYhpEbUygahmEYhmEYhmEYhmEYhpEbUygahmEYhmEYhmEYhmEYhpEbUygahmEYhmEYhmEYhmEYhpEbUygahmEYhmEYhmEYhmEYhpEbUygahmEYhmEYhmEYhmEYhpEbUygahmEYhmEYhmEYhmEYhpEbUygahmEYhmEYhmEYhmEYhpEbUygahmEYhmEYhmEYhmEYhpEbUygahmEYhmEYhmEYhmEYhpGbNqUA/9kwDMMwDMMwMvn777/d/fff7781Ddtss42bYgqbCzcMwzAMw2gJmELRMAzDMAzDKMQff/zh5p9/fvftt9/6nNrzzTffuDnnnNN/MwzDMAzDMJoTUygahmEYhmEYhXn66afdxhtv7P755x+fU0evXr3cggsu6L8VB+vHL774wj3xxBNuzJgxPte50aNHuyWWWMJ/MwzDMAzDMJoTUygahmEYhmEYZXH55Ze7gw8+2H+rY/nll3fPP/+8a9u2rc8pn5tuusntu+++7s8//3TDhw9366yzjt9iGIZhGIZhNCcWiMYwDMMwDMMoi4MOOsjtv//+/lsdI0eOdHvuuaerxpz1brvt5i688EL5jMuzYRiGYRiG0TIwhaJhGIZhGIZRNpdccolbd911/bc67rrrLnf66af7b5Wx3377uQUWWKBJ4zUahmEYhmEY6ZhC0TAMwzCMsvnvv//c9ddf715//XWf03J49dVX3R133OG/GbVi6qmndnfffXejuIl9+/Z1gwcP9t/KZ8opp3RbbbWVWSgahmEYhmG0IEyhaBiGYRhGWfzvf/9zXbp0EYXPiiuu6HObD+LshVlllVXcV1995TbZZBP5b9SOdu3auQceeMDNMMMMPseJyzMuy++8847PKZ+VVlrJLBQNwzAMwzBaELYoi2EYhmEYhXnrrbfcpptu6m699dZG7q7NAVaSLN6x+uqry+rDU001ld/i5BpPPPFEN2TIELfUUkv5XKMW3HvvvW677bZrED9x4YUXFmvROeaYw+cUh5WfURjPOOOMPscwDMMwDMNoTsxC0TAMwzCMQnz44Ydi9XfCCSe0CGUioMj6999/ZXXhzz//3OfW0aNHD7fTTju5zTbbzKzcasw222zjTj75ZP+tjnHjxrntt9/e/fPPPz6nOLhVmzLRMAzDMAyj5WAWioZhGIZh5Aal0BprrOF+/fVXcWWdYoqWMTc5fPhwd+SRR7r111/fnXfeeT53Ili4derUSeL8DR06VNy0jdqAaImVIkreMAcffLC79NJL/TfDMAzDMAxjUsYsFA3DMAzDyM2ZZ57pRowY4Y4//vgWo0wELCW5rjhlImDh1rt3b/fUU0/JqsRG7WjTpo0bNGiQW3bZZX1OHZdddpm75ppr/DfDMAzDMAxjUsYsFA3DMAzDyAXuwsTDI5YdK+7OMsssfsukwQ8//ODmmmsuN/vss7uPPvrItW3b1m8xasHHH38sC+OE3cxR7A4bNsytvfbaPscwDMMwDMOYFDELRcMwDMNohaAQ/PTTT/035/766y83atQo9+abbzZYUCPMxRdf7H755RdRBuVRJo4ePdqNHz/ef6stf/zxhxs7dqz/Fs+ss84qq1Gz4jPWckZtWWihhdw999wjSkQF1/Ntt922Qdkz6iAGKErYJNj+wQcf+G8T+f33391rr73m/vvvP59TGyZMmCAru4ehHYm7JsMwDMMwJn9MoWgYhmEYrYBXXnnF7b333m611VZzs802m1jqPfTQQ6JIPP30093//d//uaWXXtotv/zybqWVVnJffvml/+VEbr75ZvnPMdJAWbTWWmvJisodO3Z033//vd8ykZdfftnNM888YvHINRQF5caxxx7runfv7jp06OBmmGEGd8wxx/itybAKNFx99dXy36gtuKIPGDDAf6vj66+/dltttZX77bfffE7rZcyYMa5v376uc+fOovBeeeWVExWDl19+uTvttNP8t4nsscce8rvDDz/c51QHVnI/5JBD3IYbbih1Fcvehx9+WLYx6aDtxpJLLhlbxw3DMAzDmLwxhaJhGIZhtAJQEg4cONDttttu4voL66yzjqzKO8ccc7h3331XlHxzzz23e+ONN1yvXr1kH+X111+vt55icZMkWNH3iCOOEGUisHgLKcqQIUPEUnCJJZZw00wzjc/NDyv+ooi56KKLxH0ZJUy3bt381mQWW2wx+Y9VFYvKZHHfffeJkrWclKV4bS0ccMAB7sADD/Tf6qCM7bXXXv5b62WmmWaSOohiHOvf7777zr399tt+60RQ8J90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o0e7+++/X44Xx/Dhw0UZOfXUU7u11lrL59bx9ttvu++++04+TzPNNG7NNdeUz2HyPqOsezAMwzAMw5jUMZdnwzAMwzCMyYyff/7Zrbzyyu61115zm222mSgRO3fuLEqyWWaZxe9VB3PLRx55pFtkkUWqqkwELAdR1G2wwQbuiiuucIsuuqjkY0V4xBFHuBNPPNH9+eefDa5p/fXXd/fdd59YIEbhWnfccUdRIr700ktu//33dxtttJHr0aOHKBJ79+7tunXrJsrGOBZeeGF38803u7XXXtuNGjXK59axwAILuIsvvtjdeOONrmPHjj63jqxntPPOO7u77rrLf0u/B8MwDMMwjMkBUygahmEYhmFMZlx00UXu33//deecc45bfvnl3eabby4WfEsvvbRY54U56aSTxJJu2WWX9TnVA0u/2WabTT6feuqpbvbZZ5fPV155pevevbtYDHbp0sVNO+20kq+gGDzvvPPcm2++6XPqGDZsmBs/frwbMGCAm3LKKX3uRLBYRGl6+eWX+5yGzD///KJYnWqqqdy1117rc+tAqTnTTDO5888/XxShYbKe0Y8//uh+/fVX/62OpHswDMMwDMOYHDCFomEYhmEYRgvnf//7n1j0bbzxxmL9pmmTTTbxezQEN2dcg//55x+f49xCCy3ktt56a/+tjnfeecddddVVbu+99/Y51efJJ58UZRxWf1gOHnzwweKS3K9fPzfFFPGiKPnHHnus23fffX1OHSgUsQaMKiDDYK34xBNP+G+NeeaZZ+RZ3nTTTWIdqWCFyPNSpaeS5xk9/PDDbs899/Tf6ki6B8MwDMMwjMkBUygahmEYhmE0E1i1YaWHm22Yq6++WuICAi7D66yzjsRBPPfcc8W6T9Oll14q+0TBxfjzzz8XxVmY3XbbzX+q46yzzhKXYSz2ouA2fckll7hx48b5HOe+/PLLQm68KOkeffRRt8UWW7g33njDHXbYYe74449PVISG2XDDDcW677HHHvM5TmIczj333P5bPMQu/Pbbb/23hnA9f/31lyg1UbgSY1LBPXzFFVf03yaS9oxYEIb7w406jrh7MAzDMAzDmBwwhaJhGIZhGEYzgeUhCqm99tpLlHWAldzZZ5/trr/+evnONlx4Dz/8cHFfxtpP0+KLLy77RNljjz1k4RIUjscdd5zPdRJLUWHRFhYZWW655XzO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/PGH/5bOP//840qlkv826cA1P/bYY/7b5M+k2K61NqhLkxpc848//ui/Feeqq65yP/zwg/8Wj8k+E3nllVfcRx995L9Nfrz++utu9OjR/lvzM3bsWPf+++/7b9WnNfS1eWiq/mnMmDHupJNOatDWPvjgg+6LL77w35qW008/3fXs2VPKmdHyMIViE/Puu++6tdZay62zzjpu+PDhPjceFH4bb7yxpFoMvt5++2233377ufnmm8+de+65PtcwikPHve6667pNN920WQUclDgo4hdaaCF38MEHN6lw/fvvv7srrrjCPffccz6negwYMMD99NNP/ltlDB061J133nkilFTKlFNO6d588023/vrry2TJpADKPp5nLbn55pvdggsuWFa7ilKvEmXkLbfc4k477bTCCn4Gqh06dHAHHXRQYcUi9WzhhRd2u+yyS+aAYumll3ZXX321W2aZZdxLL73kc5ufJ598sqwJPH63+OKLyzvPguOvssoq7umnn/Y5kwa33Xab69q1q9Tz9957z+dWh5bYtk2K7Vprgzq0zTbbuE8//dTnpIOMssMOO7gjjjhC+urmgDZ2/vnnl2v4+OOPfW5+DjvsMNe+fXv5H6csYeC/1FJLufXWW88NGzbM51aHUaNGudtvvz133Xrttdfcyiuv7EaOHOlzmp5jjjlG+rQtt9yy6u1WuXzyySdun332kedZCd99952U/zXXXLPs/qTa9YAxa8eOHd3mm28un6tNU/e1rV3uPuGEE0SJt8Yaa4ihBsw777zyjmlLm1KxN2HCBJGnmYxecskl3X333ee3GC2FNkGnNHmq8Fsod999t9t+++3dIossIg0eg7AkEByoxK+++qp0zNXmyiuvdAceeKA0uggfM844o99iGMV45JFHRJkInTt3lnI+yyyzyPem5IwzznAnnniifEahM2jQIFF01hIEQwQcOjqsfWebbTb34osvSqdbLaibCBH777+/22STTXxucf7++28RZplhXH311UVRgPK1EuhCmCQZMWKEO+ecc9zhhx/ut7RcUDrzHPI8S9pfZmWPO+44N9100/ncdC666CIZNCJUI/AXgWtjJp53U06bjNDKQArBb8UVV/S52SDoPvroo/L5qKOOkuPk5YMPPnCLLbaYm2eeeaQtWH755f2WeOhvNtpoIzfDDDPIwHrOOef0W/KDpQLPqEePHm7aaaf1ucVgUHbXXXeJpT7WHtSxSy+91B1wwAF+j2z69u3rTj31VFGUUk5od5KgDJ111lny+dZbb3U777yzfG7JMJm5xBJLiKUP8srll18uysVq0VLbtkmxXWtNMECnvLRt21YUaFNMkW4f8fPPP4t3EEo35OmXX3458zfVhkmedu3ayWeUQchJbdq0ke95oP+hnb7nnntc9+7dfe5EtF2lPl144YXukEMO8Vsq5+GHH3abbbaZKHQYw0w11VR+SzzXX3+9KHup3wz+kQubEizmF1hgAanHPKuBAwe6OeaYw28tH/odJs2YECsH7St57/QztKdF4Rq6desmyjLauF69ekmfXQTqD20u/XVeWZV9afuTyiz3wkQ+UEZuuOEGqZ/Voqn72tYsd2Pdu9pqq8n9X3bZZfIMlIsvvljON/3007tnn33WrbTSSn5L7UC52b9/f2mzae/RX9AWGS0Hs1BsJrbeeutUZWIYFIthGOjRUFcLBp3lDFwNQ0F4hUMPPVQEleZQJuKSd/LJJ8vns88+WzpsFAbVBoEeRRGuAMstt5wINwguU089tQgdu+++u3TG1YaZUizHcJnCxTSaUHxhzcyMYtx2Er/v1KmTHA/rsAsuuEA+VwLCJZ09QhNKNCwTmhtmb9Nmpo8++mi32267ue+//97nJHPjjTeKELvCCisUng1m4ggQuv7v//7Prb322qI8YxKHWXwSn8mj7KCUx4IBxTQDhLCrSV50BhwhE6E7bxoyZIj8bu6555YyVA5dunTJVCbCBhtsIP3fr7/+2sj6HksS3l8WDK4p0wiVSbPVgwcPbmQxjAITAZlrRenKpBrKxFlnnVVmvnluRawrqEfUfa4hbYADzzzzjPynfZoUlIlA24YykcE5ZbWaykSlJbZtLbFdMyaithBHHnmkKLvi2rRwou4xcQDHH398VZWJlD+9njygoM+jTMTa/IEHHpAyqKDIilMmwv333y//UaZUU5kIeg0oRLXvSktMjAF920wzzSSfm5KbbrpJ3gnjJxRKeZSJKMyyvAPod0455RRpE4pa8oeZeeaZ5T0Vhf5y2223lfLcu3dv8XpTZSKfKVdZ6Y477nC77rqrGzdunMgktK95QDZBIfbGG2/4nIbQnwOyN8+8mspEaI6+trXK3Vo2zzzzzAbKRMCLhXqFhStlIg6uq1phUiin+sxou6+99lq5hiJtrtEEBC/EqDJBg1/6+eefY1PQyVEDSoceemjs9nCab775ZN8PP/ywPi8QMEpBQyLp3HPP9WcsjyuuuEKOHzQWPmfyIRiIl4IGthQImqVgcFj69ttv/ZY6gkFl6bvvvvPfGhIMyEsDBw6U30/OvPLKK6Xbb7/dfyufQLiQchQImqUJEyb43Px8//33paDz8d/K46233irNOuuspWCQULr66qsl78svvyx16NBBykAlBEJS6amnniqdccYZpUBQLgUD69Kqq65a2mOPPeS+N9hgg9JXX33l924IdXfkyJH+W2O47g8++MB/S2aGGWYozTjjjP5bPM8++6xczy677OJz4tHrDgZiPicb2rQ0eH+zzz67HJfyEEcgVPlPTUOPHj2k7iex2mqrlfbee2//LR7ui3LNfQVCcunee+/1W9K58MIL5TdffPGFzymVfvvtt9KLL74o+ZdcconPLcln8v73v//5nMqgnHK8u+66y+fkg3vld4Gg7nPy8/7778tvKVthgsFZgz4tnAIBvHT44Yc3yOMZLLrooqXpp59e2uA8rLfeenLuQAD2ORM56aSTZNuyyy5b2nfffUurrLJKaeWVVy4FA4xS3759SzfffHMpGBA06h/ywv3R7vTs2dPnJEM7EgyGpJ7weVJgzJgxpWmnnbY01VRTSV1C5rjmmmv81urQnG3bpNiutUSKykzVkD2Cwaq8l+uvv97nZMO+/GbUqFE+p3L++OMP6Uu6du2aKf988803cv6VVlrJ56RDO8X+2223nXynLib9lrI6zzzzSKpF+3LnnXfKtZx88sk+Jx3t12699Vaf03Qg/yOncX7GTHm44447ZH/aGJ5lGp999pn0UfQlRfsO7Svp54rCe91ss81EJnn00Ud97kQ++eST0sUXXyzlvEi67777/BGy2WuvvaQ/OPPMM33ORI4//ni5t912283nVI/m6Gtbq9xNneGYyEu07XEgW62++uqJdaVXr16ipzjvvPN8Tvl0795drmf99deXug08z7gyaDQf5vJcA5566inXp08fmaWJzkBiho/1AybmWZYczEwyA0D8jzhXO46NRRjxDcIww5Zn9lVdnpl94HMaWL1g+tzSoTjjbohptLqXMDvKc8cVBLNz8pjdwIIp6moXDGjd3nvvLdZLWJq1dJjtwtUWK5ygYfe5dbPCzCQyO6fugLjl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Ro0aFf3pT3/KdPqNHDky+uWXX9ynrrzyyivRSSed5D5lg+Px97//vThuQ2nV/Rbx4YcfSv3S388wwwzyWk9whn/wwQdyvzhC83j44YejZ555JlpttdWia6+91u01DMMwDMMwDMMwDMNof1rmUFxzzTWjaaed1n3qYKKJJpJXohd/+9vfitMna5tjjjnE8fTrr79K1GO1jqZGc/TRR0eLLbZYdPnll0eHH354tOqqq0YvvPCCONd4xeH20ksvRb169Yp+/PHHaIEFFoj69esX3XbbbdGpp54qTjXul6jO77//Ptpnn33EwXbrrbdGgwYNkmm2afztb3+LFl54YXHM4rjzWWGFFaJhw4ZFt9xyi9uTzm9+85voqaeeitZee+1o9dVXj9566y33TTatut8irrrqKqkjs802W3TNNddE008/vfsmm7vvvlvqVyg4PSeeeGK51jnnnNPtTQeHIuB8/OMf/yjvDcMwDMMwDMMwDMMwxgYmqDTZE8cUT6KymP561FFHub0dbL311tHVV18d3XHHHRKlWMRkk00W9ezZM/r000/dnvZj4MCBMgV2xx13FAcbjtAscKD16NFDHHl77723OObmm2++aKGFFurmfC1C/xeHHRGGs88+u/umA6I8DzzwwOj555/PvCacf1NNNZW8x0HIOSecMN8H3ar7zYNITSIk33//falfW221lfsmmxtuuCEaMGCAREVy7+rszoJmNN1000WbbbaZOHHzwClKvaVsiWicYoop3DfjBzyP5557LlpmmWXcHsMwDMMwDMMwDMMwxibayqG4zTbbSCTZuORQ1Hsivx5RfnmwoMfkk08ueQZx9NUC0XyXXHJJdOONN4qTK8mXX34pUaAbb7xxZqSiOvyAKFAiB4to1v0SnXrwwQd3i75M44svvoiuv/76aJJJJpFymWCCCdw36dAkcCJqNCRRk9ddd538PosXX3xRpoePHj26m/M2CeXdv3//6IgjjpDIzSTcE5GO4xosREPdOP7446NJJ51UIlUNwzAMwzAMwzAMwxj7aNmUZ+W8886L9t13X3mflfNvbEYj+qacckp5zUMdXThKa0UdUlkRhUz5JXqR6blM1U3DX7F46qmndu/yadb94pAiB+fmm28e7b///pkbdeuJJ56Q3zB1moVZ0o7zN45hNfJ33nlHttNOOy11Sv0FF1wg3wNTmPfa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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 基于前面生成的用户和活动相似度数据，用协同过滤生成新的特征. 用户和活动的协同过滤都是基于下面UserCF算法\n",
    "![image.png](attachment:image.png)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    " 基于用户相关性和用户对活动的评分情况进行基于用户协同过滤,得到指定用户对指定活动的关注度\n",
    " 用某一个用户和其他所有用户的相似度去乘以所有用户对某一活动的感兴趣程度，就得到这个用户对这个活动的感兴趣程度。\n",
    "\"\"\"\n",
    "\n",
    "def UserRecommend(user_id,event_id):\n",
    "    user_idx = userindex[user_id]\n",
    "    event_idx = eventindex[event_id]\n",
    "    \n",
    "    user_sim = userSimMatrix[user_idx,:]\n",
    "    event_score = userEventScores[:,event_idx]\n",
    "    \n",
    "    user_event_sim = user_sim * event_score\n",
    "    #如果用户对这个活动有兴趣，需要去掉\n",
    "    return user_event_sim[0,0] - userEventScores[user_idx,event_idx]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    " 统计每个用户好友的数据\n",
    "\"\"\"\n",
    "def getUserFriendCount(user_id):\n",
    "    \"\"\"\n",
    "    \"\"\"\n",
    "    if user_id in userindex:\n",
    "      user_idx = userindex[user_id]\n",
    "      print(user_idx)\n",
    "      try:\n",
    "        return numFriends[user_idx]\n",
    "      except IndexError:\n",
    "        return 0\n",
    "    else:\n",
    "      return 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    " 活动的参与情况\n",
    "\"\"\"\n",
    "def eventjoinval(eventId):\n",
    "    i = eventindex[eventId]\n",
    "    return round(eventjoin[i, 0],5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "\"\"\"\n",
    " 基于活动的协同过滤分析\n",
    "\"\"\"\n",
    "def EventRecommand(user_id,event_id):\n",
    "\n",
    "    user_idx = userindex[user_id]\n",
    "    event_idx = eventindex[event_id]\n",
    "    \n",
    "    event_score = userEventScores[user_idx,:]\n",
    "    event_sim = eventSimMatrix[:,event_idx]\n",
    "    \n",
    "    event_user_sim = event_score*event_sim\n",
    "    return (event_user_sim[0,0] - userEventScores[user_idx,event_idx])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "collapsed": true,
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# ftrain = open(\"train.csv\")\n",
    "# ftrain.readline()\n",
    "# for line in ftrain:\n",
    "#     cols = line.strip().split(\",\")\n",
    "#     userrem = UserRecommend(cols[0],cols[1])\n",
    "#     friendcount = getUserFriendCount(cols[0])\n",
    "#     eventjoin_cn = eventjoinval(cols[1])\n",
    "#     eventrem = EventRecommand(cols[0],cols[1])\n",
    "#     invite = cols[2]\n",
    "#     new_train_data = pd.DataFrame(columns =['userrem','eventrem','invite','friendcount','eventjoin','interest','no_interest'])\n",
    "#     new_train_data_val = [userrem,eventrem,invite,friendcount,eventjoin_cn,cols[4],cols[5]]\n",
    "#     print(new_train_data_val)\n",
    "#     new_train_data = new_train_data.append(new_train_data_val)\n",
    "# ftrain.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1312\n",
      "userId: 3987610774, eventId: 445098029\n",
      "1312\n",
      "userId: 3987610774, eventId: 404595428\n",
      "1312\n",
      "userId: 3987610774, eventId: 4203627753\n",
      "1312\n",
      "userId: 3987610774, eventId: 2585327580\n",
      "1312\n",
      "userId: 3987610774, eventId: 1968459057\n",
      "1312\n",
      "userId: 3987610774, eventId: 4232519602\n",
      "1312\n",
      "userId: 3987610774, eventId: 3984042837\n",
      "1312\n",
      "userId: 3987610774, eventId: 1597380017\n",
      "1312\n",
      "userId: 3987610774, eventId: 675888033\n",
      "1312\n",
      "userId: 3990579831, eventId: 1392829984\n",
      "2752\n",
      "userId: 3990579831, eventId: 1368920193\n",
      "2752\n",
      "userId: 3990579831, eventId: 3234626838\n",
      "2752\n",
      "userId: 3990579831, eventId: 1271330281\n",
      "2752\n",
      "userId: 3990579831, eventId: 3830003912\n",
      "2752\n",
      "userId: 3990579831, eventId: 2262878747\n",
      "2752\n",
      "userId: 3990579831, eventId: 467130966\n",
      "2752\n",
      "userId: 3990579831, eventId: 738179988\n",
      "2752\n",
      "userId: 3990579831, eventId: 1605110491\n",
      "2752\n",
      "userId: 3994781966, eventId: 3504715371\n",
      "2209\n",
      "userId: 3994781966, eventId: 3643995431\n",
      "2209\n",
      "userId: 3994781966, eventId: 1838041662\n",
      "2209\n",
      "userId: 3994781966, eventId: 3313954564\n",
      "2209\n",
      "userId: 3994781966, eventId: 2279347311\n",
      "2209\n",
      "userId: 3994781966, eventId: 3595651948\n",
      "2209\n",
      "userId: 3995442796, eventId: 963733660\n",
      "2927\n",
      "userId: 3995442796, eventId: 1030590642\n",
      "2927\n",
      "userId: 3995442796, eventId: 146887909\n",
      "2927\n",
      "userId: 3995442796, eventId: 3115754876\n",
      "2927\n",
      "userId: 3995442796, eventId: 1213812933\n",
      "2927\n",
      "userId: 3995442796, eventId: 4158715763\n",
      "2927\n",
      "userId: 3995442796, eventId: 2209880365\n",
      "2927\n",
      "userId: 3995442796, eventId: 4155847923\n",
      "2927\n",
      "userId: 3998399905, eventId: 2499367081\n",
      "1920\n",
      "userId: 3998399905, eventId: 326944617\n",
      "1920\n",
      "userId: 3998399905, eventId: 4032767837\n",
      "1920\n",
      "userId: 3998399905, eventId: 822419493\n",
      "1920\n",
      "userId: 3998399905, eventId: 519818482\n",
      "1920\n",
      "userId: 3998399905, eventId: 202137419\n",
      "1920\n",
      "userId: 3998399905, eventId: 2317641938\n",
      "1920\n",
      "userId: 3998399905, eventId: 1611628639\n",
      "1920\n",
      "userId: 3998399905, eventId: 1492911169\n",
      "1920\n",
      "userId: 3998399905, eventId: 477927278\n",
      "1920\n",
      "userId: 3998399905, eventId: 3244922451\n",
      "1920\n",
      "userId: 3998399905, eventId: 3497374203\n",
      "1920\n",
      "userId: 4000106370, eventId: 1075421435\n",
      "1775\n",
      "userId: 4000106370, eventId: 2865762984\n",
      "1775\n",
      "userId: 4000106370, eventId: 2150848115\n",
      "1775\n",
      "userId: 4000106370, eventId: 4170108374\n",
      "1775\n",
      "userId: 4000106370, eventId: 2732461028\n",
      "1775\n",
      "userId: 4000106370, eventId: 3496460337\n",
      "1775\n",
      "userId: 4000106370, eventId: 3289683998\n",
      "1775\n",
      "userId: 4000106370, eventId: 2144500590\n",
      "1775\n",
      "userId: 4001997352, eventId: 1558108450\n",
      "1575\n",
      "userId: 4001997352, eventId: 4013172735\n",
      "1575\n",
      "userId: 4001997352, eventId: 37626417\n",
      "1575\n",
      "userId: 4001997352, eventId: 1066839399\n",
      "1575\n",
      "userId: 4001997352, eventId: 442959264\n",
      "1575\n",
      "userId: 4001997352, eventId: 3385885030\n",
      "1575\n",
      "userId: 4002956902, eventId: 952519340\n",
      "1671\n",
      "userId: 4002956902, eventId: 1816813281\n",
      "1671\n",
      "userId: 4002956902, eventId: 2549322104\n",
      "1671\n",
      "userId: 4002956902, eventId: 2098941988\n",
      "1671\n",
      "userId: 4002956902, eventId: 3103100779\n",
      "1671\n",
      "userId: 4002956902, eventId: 1269035551\n",
      "1671\n",
      "userId: 4002956902, eventId: 2007279414\n",
      "1671\n",
      "userId: 4002956902, eventId: 1076364848\n",
      "1671\n",
      "userId: 4002956902, eventId: 3309338938\n",
      "1671\n",
      "userId: 4005594979, eventId: 2934155652\n",
      "3327\n",
      "userId: 4005594979, eventId: 767955252\n",
      "3327\n",
      "userId: 4005594979, eventId: 1461681213\n",
      "3327\n",
      "userId: 4005594979, eventId: 2979976507\n",
      "3327\n",
      "userId: 4005594979, eventId: 1148122335\n",
      "3327\n",
      "userId: 4005594979, eventId: 3899724307\n",
      "3327\n",
      "userId: 4005604348, eventId: 3061224963\n",
      "1517\n",
      "userId: 4005604348, eventId: 1462294722\n",
      "1517\n",
      "userId: 4005604348, eventId: 3160682436\n",
      "1517\n",
      "userId: 4005604348, eventId: 3160682436\n",
      "1517\n",
      "userId: 4005604348, eventId: 1607857123\n",
      "1517\n",
      "userId: 4005604348, eventId: 3588120089\n",
      "1517\n",
      "userId: 4005604348, eventId: 4043937476\n",
      "1517\n",
      "userId: 4005604348, eventId: 637801371\n",
      "1517\n",
      "userId: 4005604348, eventId: 1045903606\n",
      "1517\n",
      "userId: 4005604348, eventId: 637801371\n",
      "1517\n",
      "userId: 4005604348, eventId: 4043937476\n",
      "1517\n",
      "userId: 4005604348, eventId: 3317453113\n",
      "1517\n",
      "userId: 4005604348, eventId: 3965376459\n",
      "1517\n",
      "userId: 4005906279, eventId: 1085259815\n",
      "3110\n",
      "userId: 4005906279, eventId: 2589709809\n",
      "3110\n",
      "userId: 4005906279, eventId: 3114539041\n",
      "3110\n",
      "userId: 4005906279, eventId: 3451398154\n",
      "3110\n",
      "userId: 4005906279, eventId: 2066735480\n",
      "3110\n",
      "userId: 4005906279, eventId: 2320431814\n",
      "3110\n",
      "userId: 4007830365, eventId: 3135875350\n",
      "31\n",
      "userId: 4007830365, eventId: 4125421459\n",
      "31\n",
      "userId: 4007830365, eventId: 3875790954\n",
      "31\n",
      "userId: 4007830365, eventId: 2905482756\n",
      "31\n",
      "userId: 4007830365, eventId: 850932284\n",
      "31\n",
      "userId: 4007830365, eventId: 3956263256\n",
      "31\n",
      "userId: 4007830365, eventId: 3434513569\n",
      "31\n",
      "userId: 4007830365, eventId: 3566919263\n",
      "31\n",
      "userId: 4007830365, eventId: 3633605689\n",
      "31\n",
      "userId: 4007830365, eventId: 3781958177\n",
      "31\n",
      "userId: 4007830365, eventId: 493515244\n",
      "31\n",
      "userId: 4007830365, eventId: 3409015015\n",
      "31\n",
      "userId: 4007974189, eventId: 2781837253\n",
      "1935\n",
      "userId: 4007974189, eventId: 1873283368\n",
      "1935\n",
      "userId: 4007974189, eventId: 580320955\n",
      "1935\n",
      "userId: 4007974189, eventId: 946418622\n",
      "1935\n",
      "userId: 4007974189, eventId: 3189486214\n",
      "1935\n",
      "userId: 4007974189, eventId: 1439840835\n",
      "1935\n",
      "userId: 4012638060, eventId: 2397776798\n",
      "267\n",
      "userId: 4012638060, eventId: 2081500137\n",
      "267\n",
      "userId: 4012638060, eventId: 2291983990\n",
      "267\n",
      "userId: 4012638060, eventId: 3967878081\n",
      "267\n",
      "userId: 4012638060, eventId: 3929337192\n",
      "267\n",
      "userId: 4020164258, eventId: 3578484232\n",
      "870\n",
      "userId: 4020164258, eventId: 85610883\n",
      "870\n",
      "userId: 4020164258, eventId: 1446608996\n",
      "870\n",
      "userId: 4020164258, eventId: 372011842\n",
      "870\n",
      "userId: 4020164258, eventId: 73087107\n",
      "870\n",
      "userId: 4020164258, eventId: 1746873846\n",
      "870\n",
      "userId: 4020164258, eventId: 3703682520\n",
      "870\n",
      "userId: 4024053152, eventId: 1203717384\n",
      "505\n",
      "userId: 4024053152, eventId: 268233790\n",
      "505\n",
      "userId: 4024053152, eventId: 2149464820\n",
      "505\n",
      "userId: 4024053152, eventId: 516796945\n",
      "505\n",
      "userId: 4024053152, eventId: 910169576\n",
      "505\n",
      "userId: 4024053152, eventId: 2007279414\n",
      "505\n",
      "userId: 4024104633, eventId: 2087832234\n",
      "3157\n",
      "userId: 4024104633, eventId: 1509550896\n",
      "3157\n",
      "userId: 4024104633, eventId: 3098796729\n",
      "3157\n",
      "userId: 4024104633, eventId: 3146701974\n",
      "3157\n",
      "userId: 4024104633, eventId: 4213029513\n",
      "3157\n",
      "userId: 4024104633, eventId: 816254504\n",
      "3157\n",
      "userId: 4024104633, eventId: 3541488061\n",
      "3157\n",
      "userId: 4026562594, eventId: 3793452317\n",
      "1952\n",
      "userId: 4026562594, eventId: 2086279157\n",
      "1952\n",
      "userId: 4026562594, eventId: 1068825763\n",
      "1952\n",
      "userId: 4026562594, eventId: 3480624055\n",
      "1952\n",
      "userId: 4026562594, eventId: 3889235854\n",
      "1952\n",
      "userId: 4026562594, eventId: 843570927\n",
      "1952\n",
      "userId: 4026562594, eventId: 1064770050\n",
      "1952\n",
      "userId: 4030714899, eventId: 1121879381\n",
      "63\n",
      "userId: 4030714899, eventId: 4123800071\n",
      "63\n",
      "userId: 4030714899, eventId: 2200516096\n",
      "63\n",
      "userId: 4030714899, eventId: 3443509362\n",
      "63\n",
      "userId: 4030714899, eventId: 371151062\n",
      "63\n",
      "userId: 4030714899, eventId: 2915789051\n",
      "63\n",
      "userId: 4030798150, eventId: 675888033\n",
      "1152\n",
      "userId: 4030798150, eventId: 3251813967\n",
      "1152\n",
      "userId: 4030798150, eventId: 4203627753\n",
      "1152\n",
      "userId: 4030798150, eventId: 799782433\n",
      "1152\n",
      "userId: 4030798150, eventId: 2428145712\n",
      "1152\n",
      "userId: 4030798150, eventId: 899234866\n",
      "1152\n",
      "userId: 4030798150, eventId: 3509100603\n",
      "1152\n",
      "userId: 4030798150, eventId: 823015621\n",
      "1152\n",
      "userId: 4030798150, eventId: 1501679119\n",
      "1152\n",
      "userId: 4030798150, eventId: 881346279\n",
      "1152\n",
      "userId: 4030798150, eventId: 1268088620\n",
      "1152\n",
      "userId: 4030798150, eventId: 3481603259\n",
      "1152\n",
      "userId: 4030798150, eventId: 4233837355\n",
      "1152\n",
      "userId: 4030798150, eventId: 2447943335\n",
      "1152\n",
      "userId: 4030798150, eventId: 573886273\n",
      "1152\n",
      "userId: 4030798150, eventId: 4125420656\n",
      "1152\n",
      "userId: 4030798150, eventId: 3315040094\n",
      "1152\n",
      "userId: 4032639394, eventId: 445416616\n",
      "362\n",
      "userId: 4032639394, eventId: 1079421917\n",
      "362\n",
      "userId: 4032639394, eventId: 2619521100\n",
      "362\n",
      "userId: 4032639394, eventId: 2559893836\n",
      "362\n",
      "userId: 4032639394, eventId: 1135473702\n",
      "362\n",
      "userId: 4032639394, eventId: 2861875204\n",
      "362\n",
      "userId: 4036343234, eventId: 1212947698\n",
      "993\n",
      "userId: 4036343234, eventId: 1133385189\n",
      "993\n",
      "userId: 4036343234, eventId: 1209963424\n",
      "993\n",
      "userId: 4036343234, eventId: 1637337509\n",
      "993\n",
      "userId: 4036343234, eventId: 944508163\n",
      "993\n",
      "userId: 4036343234, eventId: 3478765131\n",
      "993\n",
      "userId: 4040322582, eventId: 602394192\n",
      "3059\n",
      "userId: 4040322582, eventId: 1600413013\n",
      "3059\n",
      "userId: 4040322582, eventId: 75052451\n",
      "3059\n",
      "userId: 4040322582, eventId: 955398943\n",
      "3059\n",
      "userId: 4040322582, eventId: 1361307272\n",
      "3059\n",
      "userId: 4040322582, eventId: 2529072432\n",
      "3059\n",
      "userId: 4040322582, eventId: 771676713\n",
      "3059\n",
      "userId: 4042546595, eventId: 4262188500\n",
      "2728\n",
      "userId: 4042546595, eventId: 1060440359\n",
      "2728\n",
      "userId: 4042546595, eventId: 1642028556\n",
      "2728\n",
      "userId: 4042546595, eventId: 996485731\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2728\n",
      "userId: 4042546595, eventId: 4145665238\n",
      "2728\n",
      "userId: 4042546595, eventId: 940916476\n",
      "2728\n",
      "userId: 4042546595, eventId: 2494604370\n",
      "2728\n",
      "userId: 4042546595, eventId: 3039652825\n",
      "2728\n",
      "userId: 4042546595, eventId: 1379671569\n",
      "2728\n",
      "userId: 4042546595, eventId: 4050748396\n",
      "2728\n",
      "userId: 4042546595, eventId: 2322243932\n",
      "2728\n",
      "userId: 4042546595, eventId: 2416695503\n",
      "2728\n",
      "userId: 4042546595, eventId: 766559591\n",
      "2728\n",
      "userId: 4042546595, eventId: 3199154012\n",
      "2728\n",
      "userId: 4042546595, eventId: 3652898890\n",
      "2728\n",
      "userId: 4042546595, eventId: 1485857067\n",
      "2728\n",
      "userId: 4042546595, eventId: 3311128071\n",
      "2728\n",
      "userId: 4042546595, eventId: 1324942353\n",
      "2728\n",
      "userId: 4042546595, eventId: 2188669255\n",
      "2728\n",
      "userId: 4044282675, eventId: 1060275544\n",
      "190\n",
      "userId: 4044282675, eventId: 3462111166\n",
      "190\n",
      "userId: 4044282675, eventId: 2219144892\n",
      "190\n",
      "userId: 4044282675, eventId: 98978060\n",
      "190\n",
      "userId: 4044282675, eventId: 3119648674\n",
      "190\n",
      "userId: 4044282675, eventId: 2681780384\n",
      "190\n",
      "userId: 4044282675, eventId: 1058195960\n",
      "190\n",
      "userId: 4046490355, eventId: 1845469953\n",
      "324\n",
      "userId: 4046490355, eventId: 1174034\n",
      "324\n",
      "userId: 4046490355, eventId: 1200746292\n",
      "324\n",
      "userId: 4046490355, eventId: 3610133881\n",
      "324\n",
      "userId: 4046490355, eventId: 112957559\n",
      "324\n",
      "userId: 4046490355, eventId: 1830060678\n",
      "324\n",
      "userId: 4046490355, eventId: 723829948\n",
      "324\n",
      "userId: 4047903240, eventId: 1433428460\n",
      "1708\n",
      "userId: 4047903240, eventId: 3982673935\n",
      "1708\n",
      "userId: 4047903240, eventId: 2043006756\n",
      "1708\n",
      "userId: 4047903240, eventId: 1568276339\n",
      "1708\n",
      "userId: 4047903240, eventId: 2460275226\n",
      "1708\n",
      "userId: 4047903240, eventId: 2319080380\n",
      "1708\n",
      "userId: 4048868881, eventId: 2149464820\n",
      "2605\n",
      "userId: 4048868881, eventId: 614885637\n",
      "2605\n",
      "userId: 4048868881, eventId: 2498491194\n",
      "2605\n",
      "userId: 4048868881, eventId: 1844176380\n",
      "2605\n",
      "userId: 4048868881, eventId: 952519340\n",
      "2605\n",
      "userId: 4048868881, eventId: 268233790\n",
      "2605\n",
      "userId: 4048868881, eventId: 2007279414\n",
      "2605\n",
      "userId: 4052225912, eventId: 1370522761\n",
      "1888\n",
      "userId: 4052225912, eventId: 952519340\n",
      "1888\n",
      "userId: 4052225912, eventId: 4080944038\n",
      "1888\n",
      "userId: 4052225912, eventId: 2007279414\n",
      "1888\n",
      "userId: 4052225912, eventId: 1269035551\n",
      "1888\n",
      "userId: 4052225912, eventId: 3776957253\n",
      "1888\n",
      "userId: 4054029300, eventId: 1852872937\n",
      "2138\n",
      "userId: 4054029300, eventId: 2053952798\n",
      "2138\n",
      "userId: 4054029300, eventId: 622003251\n",
      "2138\n",
      "userId: 4054029300, eventId: 3120305017\n",
      "2138\n",
      "userId: 4054029300, eventId: 2153037761\n",
      "2138\n",
      "userId: 4054029300, eventId: 130493588\n",
      "2138\n",
      "userId: 4055395044, eventId: 2529072432\n",
      "742\n",
      "userId: 4055395044, eventId: 1532377761\n",
      "742\n",
      "userId: 4055395044, eventId: 955398943\n",
      "742\n",
      "userId: 4055395044, eventId: 3802870894\n",
      "742\n",
      "userId: 4055395044, eventId: 3314895954\n",
      "742\n",
      "userId: 4055395044, eventId: 1390707377\n",
      "742\n",
      "userId: 4057542584, eventId: 166297284\n",
      "1568\n",
      "userId: 4057542584, eventId: 2920504396\n",
      "1568\n",
      "userId: 4057542584, eventId: 718170464\n",
      "1568\n",
      "userId: 4057542584, eventId: 2433888237\n",
      "1568\n",
      "userId: 4057542584, eventId: 2926261497\n",
      "1568\n",
      "userId: 4057542584, eventId: 2890950285\n",
      "1568\n",
      "userId: 4057602883, eventId: 2114238114\n",
      "1416\n",
      "userId: 4057602883, eventId: 2874701225\n",
      "1416\n",
      "userId: 4057602883, eventId: 4049610607\n",
      "1416\n",
      "userId: 4057602883, eventId: 3823518713\n",
      "1416\n",
      "userId: 4057602883, eventId: 2944816123\n",
      "1416\n",
      "userId: 4057602883, eventId: 12241688\n",
      "1416\n",
      "userId: 4057602883, eventId: 2886354319\n",
      "1416\n",
      "userId: 4057602883, eventId: 3782727355\n",
      "1416\n",
      "userId: 4057602883, eventId: 175229279\n",
      "1416\n",
      "userId: 4057602883, eventId: 527886433\n",
      "1416\n",
      "userId: 4057602883, eventId: 947239682\n",
      "1416\n",
      "userId: 4057602883, eventId: 3987699038\n",
      "1416\n",
      "userId: 4057602883, eventId: 1326595643\n",
      "1416\n",
      "userId: 4057602883, eventId: 397526429\n",
      "1416\n",
      "userId: 4058274528, eventId: 642644408\n",
      "740\n",
      "userId: 4058274528, eventId: 3489853891\n",
      "740\n",
      "userId: 4058274528, eventId: 559618821\n",
      "740\n",
      "userId: 4058274528, eventId: 275986234\n",
      "740\n",
      "userId: 4058274528, eventId: 3929337192\n",
      "740\n",
      "userId: 4058274528, eventId: 4103733932\n",
      "740\n",
      "userId: 4062975904, eventId: 3438843767\n",
      "455\n",
      "userId: 4062975904, eventId: 4212324250\n",
      "455\n",
      "userId: 4062975904, eventId: 586190898\n",
      "455\n",
      "userId: 4062975904, eventId: 3258819416\n",
      "455\n",
      "userId: 4062975904, eventId: 960409301\n",
      "455\n",
      "userId: 4062975904, eventId: 3324533213\n",
      "455\n",
      "userId: 4066782471, eventId: 771676713\n",
      "898\n",
      "userId: 4066782471, eventId: 2130616732\n",
      "898\n",
      "userId: 4066782471, eventId: 1361307272\n",
      "898\n",
      "userId: 4066782471, eventId: 2643833505\n",
      "898\n",
      "userId: 4066782471, eventId: 2401458775\n",
      "898\n",
      "userId: 4066782471, eventId: 2977166421\n",
      "898\n",
      "userId: 4066782471, eventId: 955398943\n",
      "898\n",
      "userId: 4066782471, eventId: 4249304663\n",
      "898\n",
      "userId: 4067602271, eventId: 633659090\n",
      "3135\n",
      "userId: 4067602271, eventId: 278651783\n",
      "3135\n",
      "userId: 4067602271, eventId: 2130616732\n",
      "3135\n",
      "userId: 4067602271, eventId: 3868972599\n",
      "3135\n",
      "userId: 4067602271, eventId: 909891171\n",
      "3135\n",
      "userId: 4067602271, eventId: 907302600\n",
      "3135\n",
      "userId: 4067602271, eventId: 2643833505\n",
      "3135\n",
      "userId: 4070008434, eventId: 1600413013\n",
      "2563\n",
      "userId: 4070008434, eventId: 2401458775\n",
      "2563\n",
      "userId: 4070008434, eventId: 2977166421\n",
      "2563\n",
      "userId: 4070008434, eventId: 1431441098\n",
      "2563\n",
      "userId: 4070008434, eventId: 1332759137\n",
      "2563\n",
      "userId: 4070008434, eventId: 3685139016\n",
      "2563\n",
      "userId: 4073053389, eventId: 21987917\n",
      "1442\n",
      "userId: 4073053389, eventId: 2470509282\n",
      "1442\n",
      "userId: 4073053389, eventId: 2882404450\n",
      "1442\n",
      "userId: 4073053389, eventId: 4102873083\n",
      "1442\n",
      "userId: 4073053389, eventId: 2437776732\n",
      "1442\n",
      "userId: 4075466480, eventId: 3921014619\n",
      "440\n",
      "userId: 4075466480, eventId: 157268636\n",
      "440\n",
      "userId: 4075466480, eventId: 3327512314\n",
      "440\n",
      "userId: 4075466480, eventId: 2511965806\n",
      "440\n",
      "userId: 4075466480, eventId: 3335640477\n",
      "440\n",
      "userId: 4075466480, eventId: 3130827417\n",
      "440\n",
      "userId: 4075466480, eventId: 744858144\n",
      "440\n",
      "userId: 4075466480, eventId: 1275435478\n",
      "440\n",
      "userId: 4075466480, eventId: 230681934\n",
      "440\n",
      "userId: 4075466480, eventId: 1551227860\n",
      "440\n",
      "userId: 4075466480, eventId: 3367065897\n",
      "440\n",
      "userId: 4075466480, eventId: 1744265468\n",
      "440\n",
      "userId: 4075466480, eventId: 29800776\n",
      "440\n",
      "userId: 4075466480, eventId: 745009494\n",
      "440\n",
      "userId: 4075466480, eventId: 3261946380\n",
      "440\n",
      "userId: 4075466480, eventId: 3165653791\n",
      "440\n",
      "userId: 4075466480, eventId: 2747865716\n",
      "440\n",
      "userId: 4075466480, eventId: 2562744721\n",
      "440\n",
      "userId: 4075466480, eventId: 2974411380\n",
      "440\n",
      "userId: 4075466480, eventId: 2222499316\n",
      "440\n",
      "userId: 4075466480, eventId: 3403130296\n",
      "440\n",
      "userId: 4075466480, eventId: 3796480562\n",
      "440\n",
      "userId: 4075466480, eventId: 610221734\n",
      "440\n",
      "userId: 4075466480, eventId: 4271049883\n",
      "440\n",
      "userId: 4075466480, eventId: 3519205197\n",
      "440\n",
      "userId: 4075466480, eventId: 2505487381\n",
      "440\n",
      "userId: 4075466480, eventId: 43776105\n",
      "440\n",
      "userId: 4075466480, eventId: 2818648337\n",
      "440\n",
      "userId: 4075466480, eventId: 3166120310\n",
      "440\n",
      "userId: 4075466480, eventId: 963138294\n",
      "440\n",
      "userId: 4075466480, eventId: 2865784560\n",
      "440\n",
      "userId: 4075466480, eventId: 3538627205\n",
      "440\n",
      "userId: 4075466480, eventId: 1956857726\n",
      "440\n",
      "userId: 4075466480, eventId: 3889378792\n",
      "440\n",
      "userId: 4075466480, eventId: 2525317671\n",
      "440\n",
      "userId: 4075466480, eventId: 2227930190\n",
      "440\n",
      "userId: 4075466480, eventId: 1105000776\n",
      "440\n",
      "userId: 4075466480, eventId: 1125936115\n",
      "440\n",
      "userId: 4075466480, eventId: 980502560\n",
      "440\n",
      "userId: 4075466480, eventId: 3163699965\n",
      "440\n",
      "userId: 4075466480, eventId: 1318163270\n",
      "440\n",
      "userId: 4075466480, eventId: 3567240505\n",
      "440\n",
      "userId: 4075466480, eventId: 3463618172\n",
      "440\n",
      "userId: 4075466480, eventId: 2400649681\n",
      "440\n",
      "userId: 4075466480, eventId: 2589616173\n",
      "440\n",
      "userId: 4075574010, eventId: 4179630573\n",
      "758\n",
      "userId: 4075574010, eventId: 1682952247\n",
      "758\n",
      "userId: 4075574010, eventId: 659707179\n",
      "758\n",
      "userId: 4075574010, eventId: 2146865301\n",
      "758\n",
      "userId: 4075574010, eventId: 3722331766\n",
      "758\n",
      "userId: 4075574010, eventId: 1551986507\n",
      "758\n",
      "userId: 4075574010, eventId: 3839784127\n",
      "758\n",
      "userId: 4079159663, eventId: 955398943\n",
      "2254\n",
      "userId: 4079159663, eventId: 1277292991\n",
      "2254\n",
      "userId: 4079159663, eventId: 3502397803\n",
      "2254\n",
      "userId: 4079159663, eventId: 495087397\n",
      "2254\n",
      "userId: 4079159663, eventId: 2529072432\n",
      "2254\n",
      "userId: 4079159663, eventId: 2415873572\n",
      "2254\n",
      "userId: 4079159663, eventId: 4193610911\n",
      "2254\n",
      "userId: 4081761804, eventId: 1703662408\n",
      "1356\n",
      "userId: 4081761804, eventId: 691282771\n",
      "1356\n",
      "userId: 4081761804, eventId: 2274328264\n",
      "1356\n",
      "userId: 4081761804, eventId: 1146784351\n",
      "1356\n",
      "userId: 4081761804, eventId: 3702386514\n",
      "1356\n",
      "userId: 4081761804, eventId: 3480087256\n",
      "1356\n",
      "userId: 4081761804, eventId: 788716103\n",
      "1356\n",
      "userId: 4081761804, eventId: 2350143315\n",
      "1356\n",
      "userId: 4081761804, eventId: 2028042509\n",
      "1356\n",
      "userId: 4081761804, eventId: 3875198199\n",
      "1356\n",
      "userId: 4081921627, eventId: 1991348663\n",
      "1569\n",
      "userId: 4081921627, eventId: 2804196261\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1569\n",
      "userId: 4081921627, eventId: 3335267094\n",
      "1569\n",
      "userId: 4081921627, eventId: 1107859556\n",
      "1569\n",
      "userId: 4081921627, eventId: 456154992\n",
      "1569\n",
      "userId: 4081921627, eventId: 2028133922\n",
      "1569\n",
      "userId: 4081921627, eventId: 3730987913\n",
      "1569\n",
      "userId: 4081921627, eventId: 1650425619\n",
      "1569\n",
      "userId: 4087630383, eventId: 2433217376\n",
      "1817\n",
      "userId: 4087630383, eventId: 3045233736\n",
      "1817\n",
      "userId: 4087630383, eventId: 3790866767\n",
      "1817\n",
      "userId: 4087630383, eventId: 2140038223\n",
      "1817\n",
      "userId: 4087630383, eventId: 2899756668\n",
      "1817\n",
      "userId: 4087630383, eventId: 4097011060\n",
      "1817\n",
      "userId: 4089111119, eventId: 3479440123\n",
      "2483\n",
      "userId: 4089111119, eventId: 2575170797\n",
      "2483\n",
      "userId: 4089111119, eventId: 3569739978\n",
      "2483\n",
      "userId: 4089111119, eventId: 2368911433\n",
      "2483\n",
      "userId: 4089111119, eventId: 2769506511\n",
      "2483\n",
      "userId: 4089111119, eventId: 1455321313\n",
      "2483\n",
      "userId: 4098096768, eventId: 2899306830\n",
      "437\n",
      "userId: 4098096768, eventId: 3895404984\n",
      "437\n",
      "userId: 4098096768, eventId: 3150441220\n",
      "437\n",
      "userId: 4098096768, eventId: 4253930794\n",
      "437\n",
      "userId: 4098096768, eventId: 2437630462\n",
      "437\n",
      "userId: 4098096768, eventId: 1159109322\n",
      "437\n",
      "userId: 4101515763, eventId: 2554184750\n",
      "3265\n",
      "userId: 4101515763, eventId: 2615984474\n",
      "3265\n",
      "userId: 4101515763, eventId: 3608297024\n",
      "3265\n",
      "userId: 4101515763, eventId: 3655295959\n",
      "3265\n",
      "userId: 4101515763, eventId: 2770527444\n",
      "3265\n",
      "userId: 4101515763, eventId: 2090707728\n",
      "3265\n",
      "userId: 4101519751, eventId: 427097190\n",
      "1271\n",
      "userId: 4101519751, eventId: 2114066448\n",
      "1271\n",
      "userId: 4101519751, eventId: 688225431\n",
      "1271\n",
      "userId: 4101519751, eventId: 2803416473\n",
      "1271\n",
      "userId: 4101519751, eventId: 3801433102\n",
      "1271\n",
      "userId: 4101519751, eventId: 893326926\n",
      "1271\n",
      "userId: 4101519751, eventId: 4258442948\n",
      "1271\n",
      "userId: 4101519751, eventId: 1347542349\n",
      "1271\n",
      "userId: 4101519751, eventId: 4140663220\n",
      "1271\n",
      "userId: 4101519751, eventId: 897667289\n",
      "1271\n",
      "userId: 4101519751, eventId: 615488222\n",
      "1271\n",
      "userId: 4101519751, eventId: 3828664529\n",
      "1271\n",
      "userId: 4101519751, eventId: 862976415\n",
      "1271\n",
      "userId: 4103253513, eventId: 3984042837\n",
      "323\n",
      "userId: 4103253513, eventId: 1597380017\n",
      "323\n",
      "userId: 4103253513, eventId: 966971643\n",
      "323\n",
      "userId: 4103253513, eventId: 152418051\n",
      "323\n",
      "userId: 4103253513, eventId: 2428145712\n",
      "323\n",
      "userId: 4103253513, eventId: 3251813967\n",
      "323\n",
      "userId: 4103923906, eventId: 1536783222\n",
      "1325\n",
      "userId: 4103923906, eventId: 737023160\n",
      "1325\n",
      "userId: 4103923906, eventId: 1600413013\n",
      "1325\n",
      "userId: 4103923906, eventId: 955398943\n",
      "1325\n",
      "userId: 4103923906, eventId: 997119679\n",
      "1325\n",
      "userId: 4103923906, eventId: 3981414613\n",
      "1325\n",
      "userId: 4106525792, eventId: 3651525181\n",
      "1509\n",
      "userId: 4106525792, eventId: 2324549960\n",
      "1509\n",
      "userId: 4106525792, eventId: 4000251470\n",
      "1509\n",
      "userId: 4106525792, eventId: 3643004825\n",
      "1509\n",
      "userId: 4106525792, eventId: 2120779072\n",
      "1509\n",
      "userId: 4106525792, eventId: 3592100929\n",
      "1509\n",
      "userId: 4106525792, eventId: 1473256460\n",
      "1509\n",
      "userId: 4106927042, eventId: 1327611267\n",
      "347\n",
      "userId: 4106927042, eventId: 3154564127\n",
      "347\n",
      "userId: 4106927042, eventId: 1876364254\n",
      "347\n",
      "userId: 4106927042, eventId: 44093924\n",
      "347\n",
      "userId: 4106927042, eventId: 3588547708\n",
      "347\n",
      "userId: 4106927042, eventId: 750863544\n",
      "347\n",
      "userId: 4107349498, eventId: 3795400528\n",
      "1107\n",
      "userId: 4107349498, eventId: 2218325768\n",
      "1107\n",
      "userId: 4107349498, eventId: 3842730088\n",
      "1107\n",
      "userId: 4107349498, eventId: 2604545919\n",
      "1107\n",
      "userId: 4107349498, eventId: 543972501\n",
      "1107\n",
      "userId: 4107349498, eventId: 715515458\n",
      "1107\n",
      "userId: 4107349498, eventId: 1228413502\n",
      "1107\n",
      "userId: 4108811510, eventId: 952519340\n",
      "2028\n",
      "userId: 4108811510, eventId: 2149464820\n",
      "2028\n",
      "userId: 4108811510, eventId: 1203717384\n",
      "2028\n",
      "userId: 4108811510, eventId: 1844176380\n",
      "2028\n",
      "userId: 4108811510, eventId: 2007279414\n",
      "2028\n",
      "userId: 4108811510, eventId: 1269035551\n",
      "2028\n",
      "userId: 4108811510, eventId: 1076364848\n",
      "2028\n",
      "userId: 4109397627, eventId: 2942609119\n",
      "3236\n",
      "userId: 4109397627, eventId: 2131811948\n",
      "3236\n",
      "userId: 4109397627, eventId: 1255629030\n",
      "3236\n",
      "userId: 4109397627, eventId: 1065552764\n",
      "3236\n",
      "userId: 4109397627, eventId: 3738103740\n",
      "3236\n",
      "userId: 4109397627, eventId: 3554433899\n",
      "3236\n",
      "userId: 4109397627, eventId: 3841242017\n",
      "3236\n",
      "userId: 4111854243, eventId: 2201545594\n",
      "1132\n",
      "userId: 4111854243, eventId: 3596510482\n",
      "1132\n",
      "userId: 4111854243, eventId: 6996239\n",
      "1132\n",
      "userId: 4111854243, eventId: 3311509108\n",
      "1132\n",
      "userId: 4111854243, eventId: 2000201086\n",
      "1132\n",
      "userId: 4111854243, eventId: 4146680584\n",
      "1132\n",
      "userId: 4115365036, eventId: 525624264\n",
      "1822\n",
      "userId: 4115365036, eventId: 955398943\n",
      "1822\n",
      "userId: 4115365036, eventId: 1361307272\n",
      "1822\n",
      "userId: 4115365036, eventId: 97217712\n",
      "1822\n",
      "userId: 4115365036, eventId: 633659090\n",
      "1822\n",
      "userId: 4115365036, eventId: 907302600\n",
      "1822\n",
      "userId: 4115365036, eventId: 2643833505\n",
      "1822\n",
      "userId: 4115365036, eventId: 2529072432\n",
      "1822\n",
      "userId: 4115365036, eventId: 771676713\n",
      "1822\n",
      "userId: 4115365036, eventId: 2130616732\n",
      "1822\n",
      "userId: 4118821425, eventId: 196335814\n",
      "1130\n",
      "userId: 4118821425, eventId: 780696608\n",
      "1130\n",
      "userId: 4118821425, eventId: 3681999765\n",
      "1130\n",
      "userId: 4118821425, eventId: 2806565970\n",
      "1130\n",
      "userId: 4118821425, eventId: 4198728308\n",
      "1130\n",
      "userId: 4118821425, eventId: 559618821\n",
      "1130\n",
      "userId: 4118821425, eventId: 3643004825\n",
      "1130\n",
      "userId: 4119250454, eventId: 1133385189\n",
      "812\n",
      "userId: 4119250454, eventId: 501560870\n",
      "812\n",
      "userId: 4119250454, eventId: 2572673665\n",
      "812\n",
      "userId: 4119250454, eventId: 3814766855\n",
      "812\n",
      "userId: 4119250454, eventId: 553840202\n",
      "812\n",
      "userId: 4119250454, eventId: 196335814\n",
      "812\n",
      "userId: 4120847672, eventId: 321681951\n",
      "1894\n",
      "userId: 4120847672, eventId: 834360181\n",
      "1894\n",
      "userId: 4120847672, eventId: 2427264930\n",
      "1894\n",
      "userId: 4120847672, eventId: 4364520\n",
      "1894\n",
      "userId: 4120847672, eventId: 613582690\n",
      "1894\n",
      "userId: 4120847672, eventId: 321116395\n",
      "1894\n",
      "userId: 4122019703, eventId: 2038842201\n",
      "760\n",
      "userId: 4122019703, eventId: 893373776\n",
      "760\n",
      "userId: 4122019703, eventId: 3676617790\n",
      "760\n",
      "userId: 4122019703, eventId: 3523716576\n",
      "760\n",
      "userId: 4122019703, eventId: 2501314150\n",
      "760\n",
      "userId: 4122019703, eventId: 36941495\n",
      "760\n",
      "userId: 4122483286, eventId: 2892429018\n",
      "2750\n",
      "userId: 4122483286, eventId: 193057331\n",
      "2750\n",
      "userId: 4122483286, eventId: 2792119811\n",
      "2750\n",
      "userId: 4122483286, eventId: 1270821753\n",
      "2750\n",
      "userId: 4122483286, eventId: 4159151915\n",
      "2750\n",
      "userId: 4122483286, eventId: 4100467276\n",
      "2750\n",
      "userId: 4122483286, eventId: 3784929022\n",
      "2750\n",
      "userId: 4122483286, eventId: 1940144951\n",
      "2750\n",
      "userId: 4122483286, eventId: 1174322982\n",
      "2750\n",
      "userId: 4122483286, eventId: 3803531290\n",
      "2750\n",
      "userId: 4122483286, eventId: 3729527390\n",
      "2750\n",
      "userId: 4122483286, eventId: 1643733273\n",
      "2750\n",
      "userId: 4122483286, eventId: 1363299595\n",
      "2750\n",
      "userId: 4122483286, eventId: 580944656\n",
      "2750\n",
      "userId: 4122483286, eventId: 158205194\n",
      "2750\n",
      "userId: 4123476974, eventId: 2073609284\n",
      "234\n",
      "userId: 4123476974, eventId: 2149464820\n",
      "234\n",
      "userId: 4123476974, eventId: 673098017\n",
      "234\n",
      "userId: 4123476974, eventId: 1269035551\n",
      "234\n",
      "userId: 4123476974, eventId: 2007279414\n",
      "234\n",
      "userId: 4123476974, eventId: 1203717384\n",
      "234\n",
      "userId: 4124005270, eventId: 1532377761\n",
      "1530\n",
      "userId: 4124005270, eventId: 955398943\n",
      "1530\n",
      "userId: 4124005270, eventId: 1390707377\n",
      "1530\n",
      "userId: 4124005270, eventId: 3632072502\n",
      "1530\n",
      "userId: 4124005270, eventId: 2051111588\n",
      "1530\n",
      "userId: 4124005270, eventId: 2529072432\n",
      "1530\n",
      "userId: 4125376571, eventId: 3929507420\n",
      "139\n",
      "userId: 4125376571, eventId: 1205670273\n",
      "139\n",
      "userId: 4125376571, eventId: 1731351853\n",
      "139\n",
      "userId: 4125376571, eventId: 1935724864\n",
      "139\n",
      "userId: 4125376571, eventId: 1710224312\n",
      "139\n",
      "userId: 4125376571, eventId: 230117918\n",
      "139\n",
      "userId: 4129856023, eventId: 1028330395\n",
      "1812\n",
      "userId: 4129856023, eventId: 3677230481\n",
      "1812\n",
      "userId: 4129856023, eventId: 3781269679\n",
      "1812\n",
      "userId: 4129856023, eventId: 1243182652\n",
      "1812\n",
      "userId: 4129856023, eventId: 2772019284\n",
      "1812\n",
      "userId: 4129856023, eventId: 139221822\n",
      "1812\n",
      "userId: 4133514703, eventId: 719337372\n",
      "1541\n",
      "userId: 4133514703, eventId: 1558625743\n",
      "1541\n",
      "userId: 4133514703, eventId: 2468336372\n",
      "1541\n",
      "userId: 4133514703, eventId: 827682864\n",
      "1541\n",
      "userId: 4134124728, eventId: 3327194350\n",
      "1755\n",
      "userId: 4134124728, eventId: 3938234624\n",
      "1755\n",
      "userId: 4134124728, eventId: 1599651156\n",
      "1755\n",
      "userId: 4134124728, eventId: 1520803271\n",
      "1755\n",
      "userId: 4134124728, eventId: 545994124\n",
      "1755\n",
      "userId: 4134124728, eventId: 3127514099\n",
      "1755\n",
      "userId: 4135589149, eventId: 1764893644\n",
      "817\n",
      "userId: 4135589149, eventId: 3536426515\n",
      "817\n",
      "userId: 4135589149, eventId: 2579225663\n",
      "817\n",
      "userId: 4135589149, eventId: 1063306856\n",
      "817\n",
      "userId: 4135589149, eventId: 3130359578\n",
      "817\n",
      "userId: 4135589149, eventId: 1685082900\n",
      "817\n",
      "userId: 4135593225, eventId: 84432624\n",
      "2828\n",
      "userId: 4135593225, eventId: 2997075790\n",
      "2828\n",
      "userId: 4135593225, eventId: 508297104\n",
      "2828\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "userId: 4135593225, eventId: 784664260\n",
      "2828\n",
      "userId: 4135593225, eventId: 2824096896\n",
      "2828\n",
      "userId: 4135593225, eventId: 1347202114\n",
      "2828\n",
      "userId: 4136285322, eventId: 4125420656\n",
      "2670\n",
      "userId: 4136285322, eventId: 3315040094\n",
      "2670\n",
      "userId: 4136285322, eventId: 2428145712\n",
      "2670\n",
      "userId: 4136285322, eventId: 899234866\n",
      "2670\n",
      "userId: 4136285322, eventId: 675888033\n",
      "2670\n",
      "userId: 4136285322, eventId: 4203627753\n",
      "2670\n",
      "userId: 4136285322, eventId: 3509100603\n",
      "2670\n",
      "userId: 4136285322, eventId: 823015621\n",
      "2670\n",
      "userId: 4136285322, eventId: 2428145712\n",
      "2670\n",
      "userId: 4136285322, eventId: 3984042837\n",
      "2670\n",
      "userId: 4136285322, eventId: 675888033\n",
      "2670\n",
      "userId: 4136285322, eventId: 4203627753\n",
      "2670\n",
      "userId: 4137863751, eventId: 3345225671\n",
      "2533\n",
      "userId: 4137863751, eventId: 4201550847\n",
      "2533\n",
      "userId: 4137863751, eventId: 1818408219\n",
      "2533\n",
      "userId: 4137863751, eventId: 3414181314\n",
      "2533\n",
      "userId: 4137863751, eventId: 1080582769\n",
      "2533\n",
      "userId: 4137863751, eventId: 3974066619\n",
      "2533\n",
      "userId: 4137863751, eventId: 83332510\n",
      "2533\n",
      "userId: 4138013784, eventId: 1205670273\n",
      "955\n",
      "userId: 4138013784, eventId: 3681892474\n",
      "955\n",
      "userId: 4138013784, eventId: 282271212\n",
      "955\n",
      "userId: 4138013784, eventId: 1464766301\n",
      "955\n",
      "userId: 4138013784, eventId: 736236994\n",
      "955\n",
      "userId: 4138013784, eventId: 3929507420\n",
      "955\n",
      "userId: 4138013784, eventId: 3183669415\n",
      "955\n",
      "userId: 4138499822, eventId: 1926591654\n",
      "986\n",
      "userId: 4138499822, eventId: 2506434794\n",
      "986\n",
      "userId: 4138499822, eventId: 2731345509\n",
      "986\n",
      "userId: 4138499822, eventId: 263876510\n",
      "986\n",
      "userId: 4138499822, eventId: 2287617625\n",
      "986\n",
      "userId: 4138499822, eventId: 3776181536\n",
      "986\n",
      "userId: 4140744216, eventId: 1838041662\n",
      "1082\n",
      "userId: 4140744216, eventId: 2572117226\n",
      "1082\n",
      "userId: 4140744216, eventId: 1659742236\n",
      "1082\n",
      "userId: 4140744216, eventId: 2349777229\n",
      "1082\n",
      "userId: 4140744216, eventId: 2520498690\n",
      "1082\n",
      "userId: 4140744216, eventId: 4183544021\n",
      "1082\n",
      "userId: 4141359923, eventId: 986152191\n",
      "3124\n",
      "userId: 4141359923, eventId: 2803195749\n",
      "3124\n",
      "userId: 4141359923, eventId: 2806565970\n",
      "3124\n",
      "userId: 4141359923, eventId: 3116040201\n",
      "3124\n",
      "userId: 4141359923, eventId: 3643004825\n",
      "3124\n",
      "userId: 4141359923, eventId: 3793452317\n",
      "3124\n",
      "userId: 4141924620, eventId: 2153037761\n",
      "2288\n",
      "userId: 4141924620, eventId: 731731924\n",
      "2288\n",
      "userId: 4141924620, eventId: 2250918448\n",
      "2288\n",
      "userId: 4141924620, eventId: 4364520\n",
      "2288\n",
      "userId: 4141924620, eventId: 3247053834\n",
      "2288\n",
      "userId: 4141924620, eventId: 641950279\n",
      "2288\n",
      "userId: 4141924620, eventId: 2465528861\n",
      "2288\n",
      "userId: 4141924620, eventId: 2115491671\n",
      "2288\n",
      "userId: 4141924620, eventId: 2038842201\n",
      "2288\n",
      "userId: 4145252615, eventId: 3167570493\n",
      "2283\n",
      "userId: 4145252615, eventId: 896838988\n",
      "2283\n",
      "userId: 4145252615, eventId: 67648066\n",
      "2283\n",
      "userId: 4145252615, eventId: 1386351230\n",
      "2283\n",
      "userId: 4145252615, eventId: 3005548418\n",
      "2283\n",
      "userId: 4145252615, eventId: 1811608751\n",
      "2283\n",
      "userId: 4146086354, eventId: 280784670\n",
      "483\n",
      "userId: 4146086354, eventId: 715813761\n",
      "483\n",
      "userId: 4146086354, eventId: 2247298290\n",
      "483\n",
      "userId: 4146086354, eventId: 318809922\n",
      "483\n",
      "userId: 4146086354, eventId: 1560792011\n",
      "483\n",
      "userId: 4146086354, eventId: 3260635116\n",
      "483\n",
      "userId: 4146675310, eventId: 268233790\n",
      "1592\n",
      "userId: 4146675310, eventId: 1902753965\n",
      "1592\n",
      "userId: 4146675310, eventId: 3849306291\n",
      "1592\n",
      "userId: 4146675310, eventId: 2149464820\n",
      "1592\n",
      "userId: 4146675310, eventId: 1269035551\n",
      "1592\n",
      "userId: 4146675310, eventId: 2007279414\n",
      "1592\n",
      "userId: 4151484001, eventId: 3601943023\n",
      "593\n",
      "userId: 4151484001, eventId: 4147483412\n",
      "593\n",
      "userId: 4151484001, eventId: 210393825\n",
      "593\n",
      "userId: 4151484001, eventId: 4064214056\n",
      "593\n",
      "userId: 4151484001, eventId: 2513953842\n",
      "593\n",
      "userId: 4151484001, eventId: 1461387354\n",
      "593\n",
      "userId: 4152805025, eventId: 3507974117\n",
      "2067\n",
      "userId: 4152805025, eventId: 2808951120\n",
      "2067\n",
      "userId: 4152805025, eventId: 3515520150\n",
      "2067\n",
      "userId: 4152805025, eventId: 2061870345\n",
      "2067\n",
      "userId: 4152805025, eventId: 2071807179\n",
      "2067\n",
      "userId: 4152805025, eventId: 2843648870\n",
      "2067\n",
      "userId: 4156731925, eventId: 2157645470\n",
      "2960\n",
      "userId: 4156731925, eventId: 2415873572\n",
      "2960\n",
      "userId: 4156731925, eventId: 896333395\n",
      "2960\n",
      "userId: 4156731925, eventId: 3429508261\n",
      "2960\n",
      "userId: 4156731925, eventId: 955398943\n",
      "2960\n",
      "userId: 4156731925, eventId: 1139465813\n",
      "2960\n",
      "userId: 4156731925, eventId: 711611185\n",
      "2960\n",
      "userId: 4156731925, eventId: 2610494844\n",
      "2960\n",
      "userId: 4156731925, eventId: 2529072432\n",
      "2960\n",
      "userId: 4156731925, eventId: 2830173169\n",
      "2960\n",
      "userId: 4156731925, eventId: 800349173\n",
      "2960\n",
      "userId: 4156731925, eventId: 1497764698\n",
      "2960\n",
      "userId: 4157365314, eventId: 2270126516\n",
      "132\n",
      "userId: 4157365314, eventId: 85610883\n",
      "132\n",
      "userId: 4157365314, eventId: 2145977549\n",
      "132\n",
      "userId: 4157365314, eventId: 4159897186\n",
      "132\n",
      "userId: 4157365314, eventId: 4267083677\n",
      "132\n",
      "userId: 4157365314, eventId: 3418415418\n",
      "132\n",
      "userId: 4157365314, eventId: 3703612480\n",
      "132\n",
      "userId: 4157365314, eventId: 1693226702\n",
      "132\n",
      "userId: 4157365314, eventId: 3578484232\n",
      "132\n",
      "userId: 4157365314, eventId: 1255629030\n",
      "132\n",
      "userId: 4157365314, eventId: 1446608996\n",
      "132\n",
      "userId: 4157365314, eventId: 126225732\n",
      "132\n",
      "userId: 4157365314, eventId: 372011842\n",
      "132\n",
      "userId: 4157365314, eventId: 3210395746\n",
      "132\n",
      "userId: 4157365314, eventId: 3183605169\n",
      "132\n",
      "userId: 4162525077, eventId: 2129718710\n",
      "789\n",
      "userId: 4162525077, eventId: 263011441\n",
      "789\n",
      "userId: 4162525077, eventId: 4157119717\n",
      "789\n",
      "userId: 4162525077, eventId: 3205877648\n",
      "789\n",
      "userId: 4162525077, eventId: 945869322\n",
      "789\n",
      "userId: 4162525077, eventId: 3861768249\n",
      "789\n",
      "userId: 4162525077, eventId: 2416778852\n",
      "789\n",
      "userId: 4162769577, eventId: 2528133963\n",
      "989\n",
      "userId: 4162769577, eventId: 2445964998\n",
      "989\n",
      "userId: 4162769577, eventId: 2396566946\n",
      "989\n",
      "userId: 4162769577, eventId: 1465929077\n",
      "989\n",
      "userId: 4162769577, eventId: 1716470668\n",
      "989\n",
      "userId: 4162769577, eventId: 810618772\n",
      "989\n",
      "userId: 4164388326, eventId: 2437756221\n",
      "1276\n",
      "userId: 4164388326, eventId: 741936389\n",
      "1276\n",
      "userId: 4164388326, eventId: 3175320123\n",
      "1276\n",
      "userId: 4164388326, eventId: 3450438709\n",
      "1276\n",
      "userId: 4164388326, eventId: 3971391468\n",
      "1276\n",
      "userId: 4164388326, eventId: 2694358997\n",
      "1276\n",
      "userId: 4164388326, eventId: 116707400\n",
      "1276\n",
      "userId: 4165482530, eventId: 1148012652\n",
      "1705\n",
      "userId: 4165482530, eventId: 1600413013\n",
      "1705\n",
      "userId: 4165482530, eventId: 955398943\n",
      "1705\n",
      "userId: 4165482530, eventId: 2130616732\n",
      "1705\n",
      "userId: 4165482530, eventId: 2133183406\n",
      "1705\n",
      "userId: 4165482530, eventId: 1334001859\n",
      "1705\n",
      "userId: 4168402703, eventId: 210393825\n",
      "2316\n",
      "userId: 4168402703, eventId: 4147483412\n",
      "2316\n",
      "userId: 4168402703, eventId: 1985153611\n",
      "2316\n",
      "userId: 4168402703, eventId: 309860528\n",
      "2316\n",
      "userId: 4168402703, eventId: 760705045\n",
      "2316\n",
      "userId: 4168402703, eventId: 3601943023\n",
      "2316\n",
      "userId: 4168402703, eventId: 256821264\n",
      "2316\n",
      "userId: 4168402703, eventId: 1461387354\n",
      "2316\n",
      "userId: 4170157131, eventId: 2823343043\n",
      "670\n",
      "userId: 4170157131, eventId: 4247560499\n",
      "670\n",
      "userId: 4170157131, eventId: 1190152428\n",
      "670\n",
      "userId: 4170157131, eventId: 2191690926\n",
      "670\n",
      "userId: 4170453600, eventId: 2463159061\n",
      "918\n",
      "userId: 4170453600, eventId: 1690154685\n",
      "918\n",
      "userId: 4170453600, eventId: 3071822251\n",
      "918\n",
      "userId: 4170453600, eventId: 511362023\n",
      "918\n",
      "userId: 4170453600, eventId: 1954528574\n",
      "918\n",
      "userId: 4170453600, eventId: 4013950788\n",
      "918\n",
      "userId: 4170453600, eventId: 3898095594\n",
      "918\n",
      "userId: 4170453600, eventId: 84684334\n",
      "918\n",
      "userId: 4170453600, eventId: 1406383414\n",
      "918\n",
      "userId: 4170453600, eventId: 299696797\n",
      "918\n",
      "userId: 4170453600, eventId: 580504008\n",
      "918\n",
      "userId: 4171765566, eventId: 4106186736\n",
      "2436\n",
      "userId: 4171765566, eventId: 1532377761\n",
      "2436\n",
      "userId: 4171765566, eventId: 2373204206\n",
      "2436\n",
      "userId: 4171765566, eventId: 3300948291\n",
      "2436\n",
      "userId: 4171765566, eventId: 2529072432\n",
      "2436\n",
      "userId: 4171765566, eventId: 955398943\n",
      "2436\n",
      "userId: 4175659797, eventId: 1444583217\n",
      "1204\n",
      "userId: 4175659797, eventId: 803596418\n",
      "1204\n",
      "userId: 4175659797, eventId: 2234592975\n",
      "1204\n",
      "userId: 4175659797, eventId: 1243481310\n",
      "1204\n",
      "userId: 4175659797, eventId: 2237302185\n",
      "1204\n",
      "userId: 4175659797, eventId: 872052061\n",
      "1204\n",
      "userId: 4175659797, eventId: 3946692042\n",
      "1204\n",
      "userId: 4175659797, eventId: 167252762\n",
      "1204\n",
      "userId: 4175659797, eventId: 509781557\n",
      "1204\n",
      "userId: 4175659797, eventId: 3390105219\n",
      "1204\n",
      "userId: 4175659797, eventId: 1147733770\n",
      "1204\n",
      "userId: 4176403253, eventId: 3051804335\n",
      "59\n",
      "userId: 4176403253, eventId: 232148793\n",
      "59\n",
      "userId: 4176403253, eventId: 287790200\n",
      "59\n",
      "userId: 4176403253, eventId: 1180987071\n",
      "59\n",
      "userId: 4178291537, eventId: 332179237\n",
      "150\n",
      "userId: 4178291537, eventId: 28242790\n",
      "150\n",
      "userId: 4178291537, eventId: 2468957580\n",
      "150\n",
      "userId: 4178291537, eventId: 1275755916\n",
      "150\n",
      "userId: 4178291537, eventId: 3613324598\n",
      "150\n",
      "userId: 4178291537, eventId: 4222144697\n",
      "150\n",
      "userId: 4178291537, eventId: 633242631\n",
      "150\n",
      "userId: 4178291537, eventId: 1487659279\n",
      "150\n",
      "userId: 4179324570, eventId: 780696608\n",
      "1911\n",
      "userId: 4179324570, eventId: 1111438174\n",
      "1911\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "userId: 4179324570, eventId: 1826785122\n",
      "1911\n",
      "userId: 4179324570, eventId: 2059512399\n",
      "1911\n",
      "userId: 4179324570, eventId: 1241270051\n",
      "1911\n",
      "userId: 4179324570, eventId: 1448086840\n",
      "1911\n",
      "userId: 4180930546, eventId: 299139894\n",
      "1098\n",
      "userId: 4180930546, eventId: 3323980704\n",
      "1098\n",
      "userId: 4180930546, eventId: 2409076523\n",
      "1098\n",
      "userId: 4180930546, eventId: 1922719636\n",
      "1098\n",
      "userId: 4181452333, eventId: 4156355007\n",
      "977\n",
      "userId: 4181452333, eventId: 1083268255\n",
      "977\n",
      "userId: 4181452333, eventId: 1367385701\n",
      "977\n",
      "userId: 4181452333, eventId: 3331390995\n",
      "977\n",
      "userId: 4181468602, eventId: 2015759069\n",
      "2089\n",
      "userId: 4181468602, eventId: 3841472085\n",
      "2089\n",
      "userId: 4181468602, eventId: 3501220630\n",
      "2089\n",
      "userId: 4181468602, eventId: 675888033\n",
      "2089\n",
      "userId: 4181468602, eventId: 711902059\n",
      "2089\n",
      "userId: 4181468602, eventId: 13857128\n",
      "2089\n",
      "userId: 4181468602, eventId: 760085504\n",
      "2089\n",
      "userId: 4181543522, eventId: 2007279414\n",
      "1910\n",
      "userId: 4181543522, eventId: 3231756036\n",
      "1910\n",
      "userId: 4181543522, eventId: 1269035551\n",
      "1910\n",
      "userId: 4181543522, eventId: 2345395514\n",
      "1910\n",
      "userId: 4181543522, eventId: 1076364848\n",
      "1910\n",
      "userId: 4185115186, eventId: 673098017\n",
      "1016\n",
      "userId: 4185115186, eventId: 1076364848\n",
      "1016\n",
      "userId: 4185115186, eventId: 2007279414\n",
      "1016\n",
      "userId: 4185115186, eventId: 952519340\n",
      "1016\n",
      "userId: 4185115186, eventId: 1269035551\n",
      "1016\n",
      "userId: 4185115186, eventId: 2149464820\n",
      "1016\n",
      "userId: 4185425091, eventId: 3036332464\n",
      "412\n",
      "userId: 4185425091, eventId: 2814227130\n",
      "412\n",
      "userId: 4185425091, eventId: 1914806770\n",
      "412\n",
      "userId: 4185425091, eventId: 824593257\n",
      "412\n",
      "userId: 4185425091, eventId: 3089507532\n",
      "412\n",
      "userId: 4185425091, eventId: 3169321620\n",
      "412\n",
      "userId: 4186528243, eventId: 2007279414\n",
      "1242\n",
      "userId: 4186528243, eventId: 1269035551\n",
      "1242\n",
      "userId: 4186528243, eventId: 952519340\n",
      "1242\n",
      "userId: 4186528243, eventId: 1076364848\n",
      "1242\n",
      "userId: 4186528243, eventId: 1816813281\n",
      "1242\n",
      "userId: 4186528243, eventId: 3554778591\n",
      "1242\n",
      "userId: 4188511767, eventId: 2007279414\n",
      "2640\n",
      "userId: 4188511767, eventId: 1269035551\n",
      "2640\n",
      "userId: 4188511767, eventId: 1203717384\n",
      "2640\n",
      "userId: 4188511767, eventId: 2149464820\n",
      "2640\n",
      "userId: 4188511767, eventId: 4080944038\n",
      "2640\n",
      "userId: 4188511767, eventId: 1076364848\n",
      "2640\n",
      "userId: 4190165036, eventId: 1044854627\n",
      "3008\n",
      "userId: 4190165036, eventId: 719337372\n",
      "3008\n",
      "userId: 4190165036, eventId: 3632072502\n",
      "3008\n",
      "userId: 4190165036, eventId: 2529072432\n",
      "3008\n",
      "userId: 4190165036, eventId: 955398943\n",
      "3008\n",
      "userId: 4190165036, eventId: 1600413013\n",
      "3008\n",
      "userId: 4190165036, eventId: 1532377761\n",
      "3008\n",
      "userId: 4190165036, eventId: 1390707377\n",
      "3008\n",
      "userId: 4190879012, eventId: 2154137211\n",
      "1282\n",
      "userId: 4190879012, eventId: 2078281088\n",
      "1282\n",
      "userId: 4190879012, eventId: 516999313\n",
      "1282\n",
      "userId: 4190879012, eventId: 3051234166\n",
      "1282\n",
      "userId: 4190879012, eventId: 1134801869\n",
      "1282\n",
      "userId: 4190879012, eventId: 2164283591\n",
      "1282\n",
      "userId: 4192733318, eventId: 606749223\n",
      "938\n",
      "userId: 4192733318, eventId: 3081875998\n",
      "938\n",
      "userId: 4192733318, eventId: 2954869825\n",
      "938\n",
      "userId: 4192733318, eventId: 519339673\n",
      "938\n",
      "userId: 4192733318, eventId: 3755008121\n",
      "938\n",
      "userId: 4192733318, eventId: 2530774373\n",
      "938\n",
      "userId: 4192733318, eventId: 4145779864\n",
      "938\n",
      "userId: 4192733318, eventId: 2968986224\n",
      "938\n",
      "userId: 4195660981, eventId: 221202458\n",
      "1115\n",
      "userId: 4195660981, eventId: 3217855831\n",
      "1115\n",
      "userId: 4195660981, eventId: 4160048540\n",
      "1115\n",
      "userId: 4195660981, eventId: 897667289\n",
      "1115\n",
      "userId: 4195660981, eventId: 3130403537\n",
      "1115\n",
      "userId: 4195660981, eventId: 1577755528\n",
      "1115\n",
      "userId: 4195660981, eventId: 3720820779\n",
      "1115\n",
      "userId: 4195660981, eventId: 238236954\n",
      "1115\n",
      "userId: 4195660981, eventId: 3008735981\n",
      "1115\n",
      "userId: 4195660981, eventId: 2963144429\n",
      "1115\n",
      "userId: 4196666928, eventId: 810618772\n",
      "432\n",
      "userId: 4196666928, eventId: 1465929077\n",
      "432\n",
      "userId: 4196666928, eventId: 3992718328\n",
      "432\n",
      "userId: 4196666928, eventId: 1269035551\n",
      "432\n",
      "userId: 4196666928, eventId: 1076364848\n",
      "432\n",
      "userId: 4197193550, eventId: 566288779\n",
      "1991\n",
      "userId: 4197193550, eventId: 3180156897\n",
      "1991\n",
      "userId: 4197193550, eventId: 2307691682\n",
      "1991\n",
      "userId: 4197193550, eventId: 1638915826\n",
      "1991\n",
      "userId: 4197193550, eventId: 1628057176\n",
      "1991\n",
      "userId: 4197193550, eventId: 2582345152\n",
      "1991\n",
      "userId: 4198845543, eventId: 1991938600\n",
      "2227\n",
      "userId: 4198845543, eventId: 370008848\n",
      "2227\n",
      "userId: 4198845543, eventId: 2115491671\n",
      "2227\n",
      "userId: 4198845543, eventId: 2150848115\n",
      "2227\n",
      "userId: 4198845543, eventId: 3365249126\n",
      "2227\n",
      "userId: 4199616576, eventId: 797638314\n",
      "1912\n",
      "userId: 4199616576, eventId: 2953981660\n",
      "1912\n",
      "userId: 4199616576, eventId: 2714876429\n",
      "1912\n",
      "userId: 4199616576, eventId: 400356575\n",
      "1912\n",
      "userId: 4199616576, eventId: 3164534147\n",
      "1912\n",
      "userId: 4199616576, eventId: 602394192\n",
      "1912\n",
      "userId: 4199616576, eventId: 821614261\n",
      "1912\n",
      "userId: 4199616576, eventId: 1487327799\n",
      "1912\n",
      "userId: 4199616576, eventId: 3310353908\n",
      "1912\n",
      "userId: 4199616576, eventId: 955398943\n",
      "1912\n",
      "userId: 4199616576, eventId: 2481417302\n",
      "1912\n",
      "userId: 4199616576, eventId: 270532321\n",
      "1912\n",
      "userId: 4199616576, eventId: 2420150606\n",
      "1912\n",
      "userId: 4199616576, eventId: 1826343214\n",
      "1912\n",
      "userId: 4199616576, eventId: 82886770\n",
      "1912\n",
      "userId: 4199616576, eventId: 2529072432\n",
      "1912\n",
      "userId: 4199616576, eventId: 2645454646\n",
      "1912\n",
      "userId: 4199616576, eventId: 1908625006\n",
      "1912\n",
      "userId: 4199616576, eventId: 1290210464\n",
      "1912\n",
      "userId: 4199616576, eventId: 3276213471\n",
      "1912\n",
      "userId: 4199616576, eventId: 1294433853\n",
      "1912\n",
      "userId: 4200601044, eventId: 3118191184\n",
      "1439\n",
      "userId: 4200601044, eventId: 2237560658\n",
      "1439\n",
      "userId: 4200601044, eventId: 2784556347\n",
      "1439\n",
      "userId: 4200601044, eventId: 443617544\n",
      "1439\n",
      "userId: 4200601044, eventId: 4153011100\n",
      "1439\n",
      "userId: 4200601044, eventId: 2030880654\n",
      "1439\n",
      "userId: 4201750807, eventId: 2115491671\n",
      "1230\n",
      "userId: 4201750807, eventId: 1189005464\n",
      "1230\n",
      "userId: 4201750807, eventId: 3864843980\n",
      "1230\n",
      "userId: 4201750807, eventId: 3790866767\n",
      "1230\n",
      "userId: 4201750807, eventId: 1127345478\n",
      "1230\n",
      "userId: 4201750807, eventId: 1630022509\n",
      "1230\n",
      "userId: 4202081674, eventId: 539032065\n",
      "3136\n",
      "userId: 4202081674, eventId: 3655295959\n",
      "3136\n",
      "userId: 4202081674, eventId: 2099424186\n",
      "3136\n",
      "userId: 4202081674, eventId: 2529072432\n",
      "3136\n",
      "userId: 4202081674, eventId: 955398943\n",
      "3136\n",
      "userId: 4202081674, eventId: 861118590\n",
      "3136\n",
      "userId: 4202112938, eventId: 3094012945\n",
      "1319\n",
      "userId: 4202112938, eventId: 2114371180\n",
      "1319\n",
      "userId: 4202112938, eventId: 3585531671\n",
      "1319\n",
      "userId: 4202112938, eventId: 2198800626\n",
      "1319\n",
      "userId: 4202112938, eventId: 753115138\n",
      "1319\n",
      "userId: 4202112938, eventId: 238236954\n",
      "1319\n",
      "userId: 4205646791, eventId: 898889852\n",
      "386\n",
      "userId: 4205646791, eventId: 3753704467\n",
      "386\n",
      "userId: 4205646791, eventId: 915403718\n",
      "386\n",
      "userId: 4205646791, eventId: 2748209109\n",
      "386\n",
      "userId: 4205646791, eventId: 2286155514\n",
      "386\n",
      "userId: 4205646791, eventId: 3807386691\n",
      "386\n",
      "userId: 4205646791, eventId: 2725164213\n",
      "386\n",
      "userId: 4205646791, eventId: 2219144892\n",
      "386\n",
      "userId: 4205646791, eventId: 3928440935\n",
      "386\n",
      "userId: 4206209185, eventId: 3103100779\n",
      "2581\n",
      "userId: 4206209185, eventId: 2007279414\n",
      "2581\n",
      "userId: 4206209185, eventId: 1269035551\n",
      "2581\n",
      "userId: 4206209185, eventId: 1902753965\n",
      "2581\n",
      "userId: 4206209185, eventId: 1203717384\n",
      "2581\n",
      "userId: 4206209185, eventId: 2149464820\n",
      "2581\n",
      "userId: 4206209185, eventId: 2498491194\n",
      "2581\n",
      "userId: 4206471336, eventId: 2007279414\n",
      "808\n",
      "userId: 4206471336, eventId: 516796945\n",
      "808\n",
      "userId: 4206471336, eventId: 2149464820\n",
      "808\n",
      "userId: 4206471336, eventId: 268233790\n",
      "808\n",
      "userId: 4206471336, eventId: 1203717384\n",
      "808\n",
      "userId: 4206471336, eventId: 1269035551\n",
      "808\n",
      "userId: 4206915288, eventId: 340072523\n",
      "901\n",
      "userId: 4206915288, eventId: 4191185830\n",
      "901\n",
      "userId: 4206915288, eventId: 784441822\n",
      "901\n",
      "userId: 4206915288, eventId: 60934942\n",
      "901\n",
      "userId: 4206915288, eventId: 811652961\n",
      "901\n",
      "userId: 4206915288, eventId: 3704776276\n",
      "901\n",
      "userId: 4206915288, eventId: 4157683270\n",
      "901\n",
      "userId: 4207448575, eventId: 1908283633\n",
      "1863\n",
      "userId: 4207448575, eventId: 4237843812\n",
      "1863\n",
      "userId: 4207448575, eventId: 3149161588\n",
      "1863\n",
      "userId: 4207448575, eventId: 3913730998\n",
      "1863\n",
      "userId: 4207448575, eventId: 3577474244\n",
      "1863\n",
      "userId: 4207448575, eventId: 1753644287\n",
      "1863\n",
      "userId: 4213772349, eventId: 1280009430\n",
      "2900\n",
      "userId: 4213772349, eventId: 2034851926\n",
      "2900\n",
      "userId: 4213772349, eventId: 4238714895\n",
      "2900\n",
      "userId: 4213772349, eventId: 2558272675\n",
      "2900\n",
      "userId: 4213772349, eventId: 1689479893\n",
      "2900\n",
      "userId: 4213772349, eventId: 877168999\n",
      "2900\n",
      "userId: 4214369322, eventId: 776090102\n",
      "2407\n",
      "userId: 4214369322, eventId: 4105603749\n",
      "2407\n",
      "userId: 4214369322, eventId: 134992377\n",
      "2407\n",
      "userId: 4214369322, eventId: 3462834913\n",
      "2407\n",
      "userId: 4214369322, eventId: 1871361487\n",
      "2407\n",
      "userId: 4214369322, eventId: 2986124911\n",
      "2407\n",
      "userId: 4214369322, eventId: 1384103878\n",
      "2407\n",
      "userId: 4217222631, eventId: 4130722320\n",
      "2671\n",
      "userId: 4217222631, eventId: 2328083431\n",
      "2671\n",
      "userId: 4217222631, eventId: 4198564536\n",
      "2671\n",
      "userId: 4217222631, eventId: 3012990777\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2671\n",
      "userId: 4217222631, eventId: 3273695084\n",
      "2671\n",
      "userId: 4217222631, eventId: 1120274880\n",
      "2671\n",
      "userId: 4217222631, eventId: 1433072169\n",
      "2671\n",
      "userId: 4217222631, eventId: 2529072432\n",
      "2671\n",
      "userId: 4217222631, eventId: 3241272469\n",
      "2671\n",
      "userId: 4217222631, eventId: 844053363\n",
      "2671\n",
      "userId: 4217222631, eventId: 1673895160\n",
      "2671\n",
      "userId: 4217222631, eventId: 613942852\n",
      "2671\n",
      "userId: 4217222631, eventId: 317863256\n",
      "2671\n",
      "userId: 4217222631, eventId: 3404987729\n",
      "2671\n",
      "userId: 4217222631, eventId: 1319656469\n",
      "2671\n",
      "userId: 4217222631, eventId: 728874447\n",
      "2671\n",
      "userId: 4217222631, eventId: 2762536315\n",
      "2671\n",
      "userId: 4217222631, eventId: 3573758696\n",
      "2671\n",
      "userId: 4217222631, eventId: 1854406812\n",
      "2671\n",
      "userId: 4217222631, eventId: 468922992\n",
      "2671\n",
      "userId: 4217222631, eventId: 2860418664\n",
      "2671\n",
      "userId: 4217222631, eventId: 955398943\n",
      "2671\n",
      "userId: 4219701031, eventId: 862271714\n",
      "1029\n",
      "userId: 4219701031, eventId: 3245840256\n",
      "1029\n",
      "userId: 4219701031, eventId: 2750965517\n",
      "1029\n",
      "userId: 4219701031, eventId: 3480624055\n",
      "1029\n",
      "userId: 4220962429, eventId: 2178152313\n",
      "2906\n",
      "userId: 4220962429, eventId: 1951884947\n",
      "2906\n",
      "userId: 4220962429, eventId: 29180020\n",
      "2906\n",
      "userId: 4220962429, eventId: 1950128895\n",
      "2906\n",
      "userId: 4220962429, eventId: 1124649470\n",
      "2906\n",
      "userId: 4220962429, eventId: 1247327810\n",
      "2906\n",
      "userId: 4220962429, eventId: 63434504\n",
      "2906\n",
      "userId: 4220962429, eventId: 4239416496\n",
      "2906\n",
      "userId: 4220962429, eventId: 1611840162\n",
      "2906\n",
      "userId: 4220962429, eventId: 3926022702\n",
      "2906\n",
      "userId: 4222590338, eventId: 1782916605\n",
      "2449\n",
      "userId: 4222590338, eventId: 2434399746\n",
      "2449\n",
      "userId: 4222590338, eventId: 1224903972\n",
      "2449\n",
      "userId: 4222590338, eventId: 1986416649\n",
      "2449\n",
      "userId: 4222590338, eventId: 300004583\n",
      "2449\n",
      "userId: 4222590338, eventId: 2153821115\n",
      "2449\n",
      "userId: 4222590338, eventId: 976859786\n",
      "2449\n",
      "userId: 4222590338, eventId: 1380816019\n",
      "2449\n",
      "userId: 4222590338, eventId: 1615092494\n",
      "2449\n",
      "userId: 4222590338, eventId: 2490438703\n",
      "2449\n",
      "userId: 4222590338, eventId: 2406637710\n",
      "2449\n",
      "userId: 4222590338, eventId: 1763016232\n",
      "2449\n",
      "userId: 4226575687, eventId: 645163767\n",
      "807\n",
      "userId: 4226575687, eventId: 186104502\n",
      "807\n",
      "userId: 4226575687, eventId: 914532885\n",
      "807\n",
      "userId: 4226575687, eventId: 719337372\n",
      "807\n",
      "userId: 4226575687, eventId: 3434410911\n",
      "807\n",
      "userId: 4226575687, eventId: 1517488130\n",
      "807\n",
      "userId: 4226575687, eventId: 814437417\n",
      "807\n",
      "userId: 4226575687, eventId: 1390707377\n",
      "807\n",
      "userId: 4226575687, eventId: 2529072432\n",
      "807\n",
      "userId: 4232243965, eventId: 3968395368\n",
      "2018\n",
      "userId: 4232243965, eventId: 1241270051\n",
      "2018\n",
      "userId: 4232243965, eventId: 2520824112\n",
      "2018\n",
      "userId: 4232243965, eventId: 1330949688\n",
      "2018\n",
      "userId: 4232243965, eventId: 1036961928\n",
      "2018\n",
      "userId: 4232243965, eventId: 532053807\n",
      "2018\n",
      "userId: 4232243965, eventId: 2803195749\n",
      "2018\n",
      "userId: 4232243965, eventId: 1036837546\n",
      "2018\n",
      "userId: 4233914020, eventId: 3920148761\n",
      "1573\n",
      "userId: 4233914020, eventId: 1508951125\n",
      "1573\n",
      "userId: 4233914020, eventId: 251609489\n",
      "1573\n",
      "userId: 4233914020, eventId: 1740772631\n",
      "1573\n",
      "userId: 4233914020, eventId: 4103873674\n",
      "1573\n",
      "userId: 4233914020, eventId: 345541072\n",
      "1573\n",
      "userId: 4235386848, eventId: 1775336793\n",
      "3081\n",
      "userId: 4235386848, eventId: 1173051362\n",
      "3081\n",
      "userId: 4235386848, eventId: 69137172\n",
      "3081\n",
      "userId: 4235386848, eventId: 1908645599\n",
      "3081\n",
      "userId: 4235386848, eventId: 127371840\n",
      "3081\n",
      "userId: 4235386848, eventId: 1160297188\n",
      "3081\n",
      "userId: 4236087068, eventId: 2204867403\n",
      "971\n",
      "userId: 4236087068, eventId: 1896310801\n",
      "971\n",
      "userId: 4236087068, eventId: 2805037878\n",
      "971\n",
      "userId: 4236087068, eventId: 2980258101\n",
      "971\n",
      "userId: 4236087068, eventId: 104397174\n",
      "971\n",
      "userId: 4238321438, eventId: 2664832740\n",
      "493\n",
      "userId: 4238321438, eventId: 621292958\n",
      "493\n",
      "userId: 4238321438, eventId: 3786694913\n",
      "493\n",
      "userId: 4238321438, eventId: 520433121\n",
      "493\n",
      "userId: 4238321438, eventId: 1057214819\n",
      "493\n",
      "userId: 4238321438, eventId: 2269336012\n",
      "493\n",
      "userId: 4239378941, eventId: 215333035\n",
      "1322\n",
      "userId: 4239378941, eventId: 2490299454\n",
      "1322\n",
      "userId: 4239378941, eventId: 3338163812\n",
      "1322\n",
      "userId: 4239378941, eventId: 1807632609\n",
      "1322\n",
      "userId: 4239378941, eventId: 2896657224\n",
      "1322\n",
      "userId: 4239378941, eventId: 3007295768\n",
      "1322\n",
      "userId: 4239616087, eventId: 1395960049\n",
      "3345\n",
      "userId: 4239616087, eventId: 1425177328\n",
      "3345\n",
      "userId: 4239616087, eventId: 1753827631\n",
      "3345\n",
      "userId: 4239616087, eventId: 53110486\n",
      "3345\n",
      "userId: 4239616087, eventId: 125548712\n",
      "3345\n",
      "userId: 4239616087, eventId: 2659423239\n",
      "3345\n",
      "userId: 4239616087, eventId: 2037550810\n",
      "3345\n",
      "userId: 4239920443, eventId: 4219244481\n",
      "2868\n",
      "userId: 4239920443, eventId: 2853909310\n",
      "2868\n",
      "userId: 4239920443, eventId: 307263394\n",
      "2868\n",
      "userId: 4239920443, eventId: 3075707957\n",
      "2868\n",
      "userId: 4239920443, eventId: 2780111738\n",
      "2868\n",
      "userId: 4239920443, eventId: 1305006038\n",
      "2868\n",
      "userId: 4239920443, eventId: 1550707711\n",
      "2868\n",
      "userId: 4244109605, eventId: 2430405430\n",
      "1695\n",
      "userId: 4244109605, eventId: 3852416626\n",
      "1695\n",
      "userId: 4244109605, eventId: 1738149624\n",
      "1695\n",
      "userId: 4244109605, eventId: 1236072035\n",
      "1695\n",
      "userId: 4244109605, eventId: 1049842818\n",
      "1695\n",
      "userId: 4244109605, eventId: 3188133088\n",
      "1695\n",
      "userId: 4244109605, eventId: 2370228216\n",
      "1695\n",
      "userId: 4244109605, eventId: 1428713275\n",
      "1695\n",
      "userId: 4244109605, eventId: 3002800200\n",
      "1695\n",
      "userId: 4244109605, eventId: 3863898170\n",
      "1695\n",
      "userId: 4244109605, eventId: 852324847\n",
      "1695\n",
      "userId: 4244109605, eventId: 2171536546\n",
      "1695\n",
      "userId: 4244109605, eventId: 1024681142\n",
      "1695\n",
      "userId: 4244109605, eventId: 3825878532\n",
      "1695\n",
      "userId: 4244109605, eventId: 2230413417\n",
      "1695\n",
      "userId: 4244109605, eventId: 2475891235\n",
      "1695\n",
      "userId: 4244109605, eventId: 510692114\n",
      "1695\n",
      "userId: 4244109605, eventId: 422504591\n",
      "1695\n",
      "userId: 4244109605, eventId: 684180084\n",
      "1695\n",
      "userId: 4244109605, eventId: 421512847\n",
      "1695\n",
      "userId: 4244109605, eventId: 2288730210\n",
      "1695\n",
      "userId: 4244109605, eventId: 3007406784\n",
      "1695\n",
      "userId: 4244109605, eventId: 3004061810\n",
      "1695\n",
      "userId: 4244109605, eventId: 124610391\n",
      "1695\n",
      "userId: 4244109605, eventId: 3577726402\n",
      "1695\n",
      "userId: 4244109605, eventId: 89262367\n",
      "1695\n",
      "userId: 4244109605, eventId: 4234138929\n",
      "1695\n",
      "userId: 4246010516, eventId: 955398943\n",
      "144\n",
      "userId: 4246010516, eventId: 1077729842\n",
      "144\n",
      "userId: 4246010516, eventId: 3735036412\n",
      "144\n",
      "userId: 4246010516, eventId: 2641648909\n",
      "144\n",
      "userId: 4246010516, eventId: 1600413013\n",
      "144\n",
      "userId: 4246010516, eventId: 3952438126\n",
      "144\n",
      "userId: 4246728549, eventId: 2133183406\n",
      "1981\n",
      "userId: 4246728549, eventId: 2249210117\n",
      "1981\n",
      "userId: 4246728549, eventId: 2529072432\n",
      "1981\n",
      "userId: 4246728549, eventId: 4116595591\n",
      "1981\n",
      "userId: 4246728549, eventId: 3388135408\n",
      "1981\n",
      "userId: 4246728549, eventId: 1361307272\n",
      "1981\n",
      "userId: 4246728549, eventId: 2650202363\n",
      "1981\n",
      "userId: 4246728549, eventId: 602394192\n",
      "1981\n",
      "userId: 4246728549, eventId: 3230650403\n",
      "1981\n",
      "userId: 4246728549, eventId: 1638992821\n",
      "1981\n",
      "userId: 4246728549, eventId: 771676713\n",
      "1981\n",
      "userId: 4246728549, eventId: 827394707\n",
      "1981\n",
      "userId: 4246728549, eventId: 2489566262\n",
      "1981\n",
      "userId: 4246728549, eventId: 3029325544\n",
      "1981\n",
      "userId: 4246728549, eventId: 45687644\n",
      "1981\n",
      "userId: 4246728549, eventId: 3454377311\n",
      "1981\n",
      "userId: 4246728549, eventId: 3001071751\n",
      "1981\n",
      "userId: 4246728549, eventId: 1313929779\n",
      "1981\n",
      "userId: 4247553940, eventId: 963733660\n",
      "612\n",
      "userId: 4247553940, eventId: 1213812933\n",
      "612\n",
      "userId: 4247553940, eventId: 1030590642\n",
      "612\n",
      "userId: 4247553940, eventId: 4150407592\n",
      "612\n",
      "userId: 4247553940, eventId: 146887909\n",
      "612\n",
      "userId: 4247553940, eventId: 4155847923\n",
      "612\n",
      "userId: 4247824186, eventId: 3632072502\n",
      "3331\n",
      "userId: 4247824186, eventId: 719337372\n",
      "3331\n",
      "userId: 4247824186, eventId: 2529072432\n",
      "3331\n",
      "userId: 4247824186, eventId: 1390707377\n",
      "3331\n",
      "userId: 4247824186, eventId: 2254372858\n",
      "3331\n",
      "userId: 4247824186, eventId: 1993111201\n",
      "3331\n",
      "userId: 4247824186, eventId: 392004313\n",
      "3331\n",
      "userId: 4247824186, eventId: 448070308\n",
      "3331\n",
      "userId: 4257951883, eventId: 3478806116\n",
      "783\n",
      "userId: 4257951883, eventId: 2178315774\n",
      "783\n",
      "userId: 4257951883, eventId: 3062356265\n",
      "783\n",
      "userId: 4257951883, eventId: 1072343159\n",
      "783\n",
      "userId: 4257951883, eventId: 3599006720\n",
      "783\n",
      "userId: 4257951883, eventId: 2422402842\n",
      "783\n",
      "userId: 4257951883, eventId: 183080593\n",
      "783\n",
      "userId: 4257951883, eventId: 1180607121\n",
      "783\n",
      "userId: 4257951883, eventId: 881849271\n",
      "783\n",
      "userId: 4261340176, eventId: 1879190850\n",
      "2792\n",
      "userId: 4261340176, eventId: 3640265762\n",
      "2792\n",
      "userId: 4261340176, eventId: 3521274632\n",
      "2792\n",
      "userId: 4261340176, eventId: 3371362346\n",
      "2792\n",
      "userId: 4261340176, eventId: 4294096869\n",
      "2792\n",
      "userId: 4261340176, eventId: 2390324672\n",
      "2792\n",
      "userId: 4261865653, eventId: 322219501\n",
      "1085\n",
      "userId: 4261865653, eventId: 3480624055\n",
      "1085\n",
      "userId: 4261865653, eventId: 1771812765\n",
      "1085\n",
      "userId: 4261865653, eventId: 915403718\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1085\n",
      "userId: 4261865653, eventId: 2748209109\n",
      "1085\n",
      "userId: 4261865653, eventId: 1548928340\n",
      "1085\n",
      "userId: 4261865653, eventId: 1325647788\n",
      "1085\n",
      "userId: 4261865653, eventId: 530307239\n",
      "1085\n",
      "userId: 4261865653, eventId: 2621503414\n",
      "1085\n",
      "userId: 4261865653, eventId: 2214608095\n",
      "1085\n",
      "userId: 4261865653, eventId: 4129023810\n",
      "1085\n",
      "userId: 4262496040, eventId: 955398943\n",
      "597\n",
      "userId: 4262496040, eventId: 645163767\n",
      "597\n",
      "userId: 4262496040, eventId: 4260484947\n",
      "597\n",
      "userId: 4262496040, eventId: 2555143768\n",
      "597\n",
      "userId: 4262496040, eventId: 4239674720\n",
      "597\n",
      "userId: 4262496040, eventId: 2529072432\n",
      "597\n",
      "userId: 4262496040, eventId: 1532377761\n",
      "597\n",
      "userId: 4262496040, eventId: 719337372\n",
      "597\n",
      "userId: 4264591455, eventId: 1269035551\n",
      "1757\n",
      "userId: 4264591455, eventId: 1816813281\n",
      "1757\n",
      "userId: 4264591455, eventId: 2149464820\n",
      "1757\n",
      "userId: 4264591455, eventId: 1203717384\n",
      "1757\n",
      "userId: 4264591455, eventId: 1076364848\n",
      "1757\n",
      "userId: 4264591455, eventId: 2007279414\n",
      "1757\n",
      "userId: 4268611130, eventId: 1767211808\n",
      "1853\n",
      "userId: 4268611130, eventId: 2301567733\n",
      "1853\n",
      "userId: 4268611130, eventId: 1921275\n",
      "1853\n",
      "userId: 4268611130, eventId: 3503466480\n",
      "1853\n",
      "userId: 4268611130, eventId: 4188327628\n",
      "1853\n",
      "userId: 4268611130, eventId: 709634464\n",
      "1853\n",
      "userId: 4269216118, eventId: 3838044081\n",
      "2474\n",
      "userId: 4269216118, eventId: 1630489177\n",
      "2474\n",
      "userId: 4269216118, eventId: 3316845347\n",
      "2474\n",
      "userId: 4269216118, eventId: 2867164384\n",
      "2474\n",
      "userId: 4269216118, eventId: 955398943\n",
      "2474\n",
      "userId: 4269216118, eventId: 1829625839\n",
      "2474\n",
      "userId: 4272342830, eventId: 1269035551\n",
      "1980\n",
      "userId: 4272342830, eventId: 1902753965\n",
      "1980\n",
      "userId: 4272342830, eventId: 2007279414\n",
      "1980\n",
      "userId: 4272342830, eventId: 3309338938\n",
      "1980\n",
      "userId: 4272342830, eventId: 952519340\n",
      "1980\n",
      "userId: 4272342830, eventId: 673098017\n",
      "1980\n",
      "userId: 4275037038, eventId: 237485904\n",
      "956\n",
      "userId: 4275037038, eventId: 2122213042\n",
      "956\n",
      "userId: 4275037038, eventId: 445373500\n",
      "956\n",
      "userId: 4275037038, eventId: 1104077405\n",
      "956\n",
      "userId: 4275037038, eventId: 2275768334\n",
      "956\n",
      "userId: 4275037038, eventId: 1611840162\n",
      "956\n",
      "userId: 4276320842, eventId: 3814249322\n",
      "703\n",
      "userId: 4276320842, eventId: 786670004\n",
      "703\n",
      "userId: 4276320842, eventId: 3732079142\n",
      "703\n",
      "userId: 4276320842, eventId: 3418830493\n",
      "703\n",
      "userId: 4276320842, eventId: 2912281746\n",
      "703\n",
      "userId: 4276320842, eventId: 1096831542\n",
      "703\n",
      "userId: 4276320842, eventId: 2321153776\n",
      "703\n",
      "userId: 4276320842, eventId: 559618821\n",
      "703\n",
      "userId: 4276320842, eventId: 1095206162\n",
      "703\n",
      "userId: 4276320842, eventId: 2867570803\n",
      "703\n",
      "userId: 4278168842, eventId: 1707508219\n",
      "3382\n",
      "userId: 4278168842, eventId: 795084254\n",
      "3382\n",
      "userId: 4278168842, eventId: 1112764536\n",
      "3382\n",
      "userId: 4278168842, eventId: 2101402606\n",
      "3382\n",
      "userId: 4278168842, eventId: 989190365\n",
      "3382\n",
      "userId: 4282954307, eventId: 2985301715\n",
      "3348\n",
      "userId: 4282954307, eventId: 3924453080\n",
      "3348\n",
      "userId: 4282954307, eventId: 610427555\n",
      "3348\n",
      "userId: 4282954307, eventId: 1683157650\n",
      "3348\n",
      "userId: 4282954307, eventId: 2328883039\n",
      "3348\n",
      "userId: 4282954307, eventId: 1838698560\n",
      "3348\n",
      "userId: 4282954307, eventId: 1065677688\n",
      "3348\n",
      "userId: 4282954307, eventId: 3338313474\n",
      "3348\n",
      "userId: 4282954307, eventId: 2168072348\n",
      "3348\n",
      "userId: 4282954307, eventId: 3879978209\n",
      "3348\n",
      "userId: 4282954307, eventId: 3431614259\n",
      "3348\n",
      "userId: 4282954307, eventId: 1401314683\n",
      "3348\n",
      "userId: 4282954307, eventId: 104070\n",
      "3348\n",
      "userId: 4282954307, eventId: 3855652876\n",
      "3348\n",
      "userId: 4282954307, eventId: 1137018984\n",
      "3348\n",
      "userId: 4282954307, eventId: 2504428394\n",
      "3348\n",
      "userId: 4285564534, eventId: 3863081535\n",
      "329\n",
      "userId: 4285564534, eventId: 1168380708\n",
      "329\n",
      "userId: 4285564534, eventId: 1364943007\n",
      "329\n",
      "userId: 4285564534, eventId: 663767875\n",
      "329\n",
      "userId: 4285564534, eventId: 675426904\n",
      "329\n",
      "userId: 4285564534, eventId: 3874905711\n",
      "329\n",
      "userId: 4286635694, eventId: 3580442023\n",
      "2628\n",
      "userId: 4286635694, eventId: 281688155\n",
      "2628\n",
      "userId: 4286635694, eventId: 124989980\n",
      "2628\n",
      "userId: 4286635694, eventId: 904102962\n",
      "2628\n",
      "userId: 4286635694, eventId: 1449747272\n",
      "2628\n",
      "userId: 4286635694, eventId: 750220836\n",
      "2628\n",
      "userId: 4286635694, eventId: 1868620616\n",
      "2628\n",
      "userId: 4286635694, eventId: 3162029336\n",
      "2628\n",
      "userId: 4288238269, eventId: 373308576\n",
      "2042\n",
      "userId: 4288238269, eventId: 2806259041\n",
      "2042\n",
      "userId: 4288238269, eventId: 1347934681\n",
      "2042\n",
      "userId: 4288238269, eventId: 3783800124\n",
      "2042\n",
      "userId: 4288238269, eventId: 85168518\n",
      "2042\n",
      "userId: 4288238269, eventId: 3867317684\n",
      "2042\n",
      "userId: 4291083982, eventId: 2753805623\n",
      "754\n",
      "userId: 4291083982, eventId: 2072616125\n",
      "754\n",
      "userId: 4291083982, eventId: 2988656322\n",
      "754\n",
      "userId: 4291083982, eventId: 395593428\n",
      "754\n",
      "userId: 4291083982, eventId: 548484748\n",
      "754\n",
      "userId: 4291083982, eventId: 558937896\n",
      "754\n",
      "userId: 4293103086, eventId: 1431416915\n",
      "356\n",
      "userId: 4293103086, eventId: 2750873665\n",
      "356\n",
      "userId: 4293103086, eventId: 4084655790\n",
      "356\n",
      "userId: 4293103086, eventId: 598708806\n",
      "356\n",
      "userId: 4293103086, eventId: 604179853\n",
      "356\n",
      "userId: 4293103086, eventId: 2351245308\n",
      "356\n"
     ]
    }
   ],
   "source": [
    "fin = open(\"train.csv\")\n",
    "fin.readline()\n",
    "fout = open(\"new_data_train.csv\" , 'w')\n",
    "columns = [\"userrem\",\"eventrem\",\"invite\",\"friendcount\",\"eventjoin\",\"interested\",\"not_interested\"]\n",
    "fout.write(\",\".join(columns) + \"\\n\")\n",
    "ln = 0\n",
    "for line in fin:\n",
    "    cols = line.strip().split(\",\")\n",
    "    user_id = cols[0]\n",
    "    event_id = cols[1]\n",
    "    invited = cols[2]\n",
    "    if ln%500 == 0:\n",
    "        print (\"userId: {}, eventId: {}\".format(user_id, event_id))\n",
    "    userrem = UserRecommend(cols[0],cols[1])\n",
    "    friendcount = getUserFriendCount(cols[0])\n",
    "    eventjoin_cn = eventjoinval(cols[1])\n",
    "    eventrem = EventRecommand(cols[0],cols[1])\n",
    "    invite = cols[2]\n",
    "    value = [userrem, eventrem,invite,friendcount, eventjoin_cn,cols[4],cols[5]]\n",
    "    fout.write(\",\".join(map(lambda x: str(x), value)) + \"\\n\")\n",
    "    #fout.write(\",\".join(str(value) + \"\\n\"))\n",
    "fin.close()\n",
    "fout.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 基于模型的协同过滤\n",
    "这里就用userEventScores,记录用户对活动感兴趣的这个矩阵来做矩阵分解，用传统的SVD分解。 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\ipykernel_launcher.py:8: RuntimeWarning: invalid value encountered in true_divide\n",
      "  \n"
     ]
    }
   ],
   "source": [
    "\"\"\"\n",
    " 先对userEventScores矩阵进行归一化处理\n",
    "\"\"\"\n",
    "\n",
    "score_norm = userEventScores.toarray()\n",
    "\n",
    "for col in range(score_norm.shape[1]):\n",
    "    score_norm[:, col] = (score_norm[:, col] - score_norm[:, col].mean()) / score_norm[:, col].std()\n",
    "\n",
    "\"\"\"\n",
    " 再计算出协方差矩阵\n",
    "\"\"\"\n",
    "m = score_norm.shape[0]\n",
    "score_conv = (score_norm.T @ score_norm)/m"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[  1.00000000e+00,   0.00000000e+00,   0.00000000e+00, ...,\n",
       "         -2.94985251e-04,  -2.94985251e-04,   0.00000000e+00],\n",
       "       [  0.00000000e+00,   0.00000000e+00,   0.00000000e+00, ...,\n",
       "          0.00000000e+00,   0.00000000e+00,   0.00000000e+00],\n",
       "       [  0.00000000e+00,   0.00000000e+00,   0.00000000e+00, ...,\n",
       "          0.00000000e+00,   0.00000000e+00,   0.00000000e+00],\n",
       "       ..., \n",
       "       [ -2.94985251e-04,   0.00000000e+00,   0.00000000e+00, ...,\n",
       "          1.00000000e+00,  -2.94985251e-04,   0.00000000e+00],\n",
       "       [ -2.94985251e-04,   0.00000000e+00,   0.00000000e+00, ...,\n",
       "         -2.94985251e-04,   1.00000000e+00,   0.00000000e+00],\n",
       "       [  0.00000000e+00,   0.00000000e+00,   0.00000000e+00, ...,\n",
       "          0.00000000e+00,   0.00000000e+00,   0.00000000e+00]])"
      ]
     },
     "execution_count": 54,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\"\"\"\n",
    "  替换空值\n",
    "\"\"\"\n",
    "m,n = score_conv.shape\n",
    "for row in range(m):\n",
    "    for col in range(len(score_conv[row])):\n",
    "        if np.isnan(score_conv[row][col]):\n",
    "            score_conv[row][col] = 0\n",
    "score_conv"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "U matrix is [[ -6.85123734e-05   7.14069692e-05  -8.54839075e-05 ...,   1.22862020e-02\n",
      "   -7.75718861e-03   2.41979318e-02]\n",
      " [  8.19933710e-17  -6.38565483e-17   5.91620045e-17 ...,  -2.60594405e-02\n",
      "   -5.79399534e-03  -4.46108099e-02]\n",
      " [  5.00704320e-17  -4.09658989e-18  -1.37672096e-17 ...,   3.65651065e-03\n",
      "    1.11163739e-02   3.53040359e-02]\n",
      " ..., \n",
      " [ -8.74035277e-05   9.52189082e-05  -1.19108985e-04 ...,   6.81527368e-02\n",
      "    3.02429414e-02   1.98426526e-02]\n",
      " [  2.20723606e-01  -4.66328577e-04   2.87526089e-04 ...,  -5.39587103e-03\n",
      "    2.31620995e-04   4.02451358e-03]\n",
      " [  0.00000000e+00   0.00000000e+00   0.00000000e+00 ...,   0.00000000e+00\n",
      "    0.00000000e+00   0.00000000e+00]]\n",
      "S mtrix is [  2.05128119e+01   1.80004624e+01   1.61738357e+01 ...,   2.75114195e-16\n",
      "   2.33653756e-16   1.99266430e-16]\n",
      "V matrix is [[ -6.85123734e-05   2.17634140e-18   2.49486397e-17 ...,  -8.74035277e-05\n",
      "    2.20723606e-01   0.00000000e+00]\n",
      " [  7.14069692e-05   5.34479265e-19   9.61862827e-18 ...,   9.52189082e-05\n",
      "   -4.66328577e-04   0.00000000e+00]\n",
      " [ -8.54839075e-05  -7.70140927e-19  -1.84824706e-17 ...,  -1.19108985e-04\n",
      "    2.87526089e-04   0.00000000e+00]\n",
      " ..., \n",
      " [  0.00000000e+00  -1.47697776e-02  -3.79471036e-02 ...,   5.35849370e-03\n",
      "    1.24624511e-03   0.00000000e+00]\n",
      " [  0.00000000e+00  -2.39963706e-02   2.73413548e-02 ...,  -2.69245794e-03\n",
      "   -2.76391907e-04   0.00000000e+00]\n",
      " [  0.00000000e+00   3.93467097e-02  -6.46348425e-04 ...,  -1.60198316e-03\n",
      "    5.45256379e-04   0.00000000e+00]]\n"
     ]
    }
   ],
   "source": [
    "\"\"\"\n",
    " 进行SVD矩阵分解\n",
    "\"\"\"\n",
    "U, S, V = np.linalg.svd(score_conv)  # U: principle components (n, n)\n",
    "print('U matrix is',U)\n",
    "print('S mtrix is',S)\n",
    "print('V matrix is',V)"
   ]
  },
  {
   "attachments": {
    "image.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " 由于这个矩阵很稀疏，所以用SVD分解很慢，可以直接进行矩阵分解，用P×Q来近似得到userEventScores用户-评分矩阵\n",
    "![image.png](attachment:image.png)\n",
    " 引入L2的正则项<br/>\n",
    " 然后根据P和Q的梯度分别计算"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def matrix_divide(R, P, Q, K, steps=500, alpha=0.0001, beta=0.01):\n",
    "    #迭代计算3000次，alpha和beta都是学习率\n",
    "    Q = Q.T\n",
    "    for step in range(steps):\n",
    "        for i in range(len(R)):\n",
    "            for j in range(len(R[i])):\n",
    "                if R[i][j] > 0:\n",
    "                    #初始化误差\n",
    "                    eij = R[i][j] - np.dot(P[i,:],Q[:,j])\n",
    "                    for k in range(K):\n",
    "                        #计算P、Q矩阵的梯度值\n",
    "                        P[i][k] = P[i][k] + alpha * (2 * eij * Q[k][j] - beta * P[i][k])\n",
    "                        Q[k][j] = Q[k][j] + alpha * (2 * eij * P[i][k] - beta * Q[k][j])\n",
    "        eR = np.dot(P,Q)\n",
    "        e = 0\n",
    "        for i in range(len(R)):\n",
    "            for j in range(len(R[i])):\n",
    "                if R[i][j] > 0:\n",
    "                    #计算误差平方和\n",
    "                    e = e + pow(R[i][j] - np.dot(P[i,:],Q[:,j]), 2)\n",
    "                    #计算正则项，按照隐含变量的累积和 ，beta是学习率\n",
    "                    for k in range(K):\n",
    "                        e = e + (beta/2) * ( pow(P[i][k],2) + pow(Q[k][j],2) )\n",
    "        if e < 0.005:\n",
    "            break\n",
    "    return P, Q.T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "row = score_norm.shape[0]\n",
    "col = score_norm.shape[1]\n",
    "\n",
    "#隐含变量的个数，为了计算效率，先计算个数是2的情况\n",
    "K = 2\n",
    "\n",
    "#定义P和Q矩阵，这两个矩阵的乘机来直接模拟用户-评分矩阵  ---userEventScores\n",
    "P = np.random.rand(row,K)\n",
    "Q = np.random.rand(col,K)\n",
    "\n",
    "nP, nQ = matrix_divide(score_norm, P, Q, K)\n",
    "print(nP,nQ)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
